【问题标题】:Cannot add Outlet connection from Button to ViewController无法添加从 Button 到 ViewController 的 Outlet 连接
【发布时间】:2019-04-16 15:26:44
【问题描述】:

我正在尝试在 Xcode 中创建从按钮到 UIViewController 的 IBOutlet 连接/引用,但它只给了我添加 Action 连接的“选项”。当文本缩放以适应宽度时,我正在尝试利用 viewDidLoad 和 baselineAdjustment 将按钮标签垂直居中,但没有任何运气。

有没有人有建议或知道我做错了什么?

编辑:为清楚起见添加更多屏幕截图

如果我选择我的主场景视图,则该类的类型为 ViewController。如果我选择有问题的 Button 所属的视图(它在 ContainerView 中),则它属于 UIViewController 类,并且选项不提供 ViewController 的选择。

【问题讨论】:

  • 请参考我的回答。您需要创建一个新的.swift 文件并实现一个新的 UIViewController。
  • 我已经编辑了我的答案,说明创建一个新的 UIViewController 子类

标签: swift xcode


【解决方案1】:

确保继承 UIViewController 的正确类,确保在执行此操作时选择 UIViewController 而不是 View 或安全区域。

如果解决了请告诉我

【讨论】:

    【解决方案2】:

    我看到您在情节提要中有多个 ViewController。理想情况下,storyboard 中的每个 View 控制器都应该只有一种 UIViewController 实现,反之亦然。所以,如果你在 StoryBoard 中有 3 个 UIViewController,那么你需要创建 3 个 .swift 文件来实现 UIViewController,如下所示:

     abcVC:UIViewController { .....
     efgVC:UIViewController { .....
     ViewController:UIViewController { ..... //this is the default one you get.
    

    然后将情节提要中每个 ViewController 的类设置为上述各项之一。

    如果您的 ViewController 具有您想要输出的按钮的类类型为 abcVC,那么您只能在abcVcabcVC.swift 的实现中输出您的按钮。

    希望这是有道理的。要查看如何设置课程,请参阅@Vadim F. 的答案。

    如果你碰巧赞成这个答案,也请考虑赞成@Vadim F. 的回答。

    这是在继承 UIViewController 时创建新的 .swift 文件的方法:File -> new -> File -> Cocoa touch class -> #make it subclass of UIViewController and give it a unique name eg: abcVC

    【讨论】:

    • 非常感谢您的回答!这让我到达了我需要的地方。对于碰巧遇到同样问题并发现此问题的任何人,如果新创建的 UIViewController 子类在分配时未显示在下拉列表中,请重新启动 xcode,它应该会显示出来。
    • 乐于助人!
    【解决方案3】:

    证明您在 Storyboard 中的 ViewController 属于 ViewController 类(即您的视图控制器),而不是来自 UIViewController。

    【讨论】:

    • 我不太确定我是否理解。这是Xcode在创建项目时默认创建的ViewController吧?为什么我要从它的创建方式更改它的类型?在我看到的使用此方法的示例中,类 ViewController: UIViewController 保持与初始化相同。
    • 你说的对,不用改类名,没有问题。我还没有说清楚。您需要在界面生成器的 Main.storyboard 中更改视图控制器的类。如果您的对象的类与您尝试连接的类匹配,您只能在接口生成器中连接插座。
    猜你喜欢
    • 2021-12-03
    • 2014-05-10
    • 1970-01-01
    • 2023-03-30
    • 2017-08-20
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多