无法在 Xcode Storyboard 中为 ViewControllers 选择自定义类

Posted

技术标签:

【中文标题】无法在 Xcode Storyboard 中为 ViewControllers 选择自定义类【英文标题】:Unable to select custom class for ViewControllers in Xcode Storyboard 【发布时间】:2013-09-29 14:10:35 【问题描述】:

我刚刚将 Xcode 升级到 5.0。我对可可还很陌生,所以我希望我忽略了一些基本的东西。基本上我无法让 Xcode 看到我想用作视图控制器父类的自定义类。最初我想为 tableview 控制器创建一个自定义类,但为了简化问题,我尝试使用常规视图控制器,但这也不起作用。

我做什么:

创建新项目:单视图应用程序 给它添加一个 cocoa 类(File->New->File->Objective-C 类。我将它命名为 MyViewController 并使其成为 UIViewController 的子类 我在情节提要中选择项目模板附带的默认视图,并在身份检查器中尝试选择自定义类下的 MyViewController

该类根本没有出现在下拉列表中,我自己也无法输入。报告相同问题的许多其他威胁建议关闭/重新打开项目和 Xcode,但这对我也不起作用。

【问题讨论】:

在情节提要中,确保您选择的是父视图控制器而不是视图本身。 【参考方案1】:

当你在 Storyboard,Xcode 的 Interface Builder 中时,确保你点击了视图下的黑色条:

这将选择情节提要中的视图控制器(而不是视图)。注意整个场景周围有一个蓝色边框。选择此项后,您可以在 Identity Inspector 中设置视图控制器的类。

【讨论】:

@AlexanderN 很高兴我能帮上忙。【参考方案2】:

我终于解决了。您必须保存您的工作并退出 xcode。但是不要关闭,你必须退出 xcode。

当你再次运行 xcode 时,你会看到你刚刚创建的视图控制器。

【讨论】:

不要将此评论标记下来!我花了一段时间试图解决同样的问题,这是唯一真正有效的问题。我喜欢 xcode,它很棒!!!! :( 这最终解决了我看到的问题 =] 这对医疗也有帮助。 无用的评论【参考方案3】:

此外,请确保您的故事板中的视图控制器类型(例如 TableViewController)与您的视图控制器超类(例如 TableViewController)相匹配。否则,它不会显示在可供选择的类列表中。

【讨论】:

【参考方案4】:

对我来说,问题是我的类从另一个框架扩展了一个类,明确包括包名,例如:

class BaseMessageController: MessageKit.MessagesViewController

修复是删除框架名称:

class BaseMessageController: MessagesViewController

可能是 Apple 的错误。

【讨论】:

以上是关于无法在 Xcode Storyboard 中为 ViewControllers 选择自定义类的主要内容,如果未能解决你的问题,请参考以下文章

如何在Xcode 8中更好地使用StoryBoard

无法在 Xcode 13.1 中查看 StoryBoard 或项目目标

无法在 iOS 13 上更改 Main.storyboard 的名称 [Xcode 11 GM 种子 2]

无法在 Xcode 6 的新 Storyboard 中设置初始视图控制器

Xcode 5 iOS 7 Simulator 没有加载 Storyboard 让我抓狂! (没有本地化)

无法打开“Storyboard.storyboard”