故事板uiviewcontroller,'自定义类'没有显示在下拉菜单中

1da*_*ake 61 storyboard ios

我有一个我在我的应用程序故事板中创建的UIViewController,以及我添加到项目中的自定义UIViewController子类(并且正确地处于我的目标的编译阶段).但是,当我在Storyboard中的视图控制器上设置"自定义类"属性时,我的自定义类不会显示在列表中.

  • 检查该类是否是我的应用程序目标的一部分,而不是测试'
  • 仔细检查它是否正确是UIViewController的子类
  • 编译程序只是为了确保xcode正在处理最新信息
  • 重启xcode

什么会导致我的班级没有出现在"自定义班级"下拉菜单中?

小智 43

我找到了解决问题的两种方法,但它们是解决问题的方法.1.只需在文本字段中键入视图控制器名称,或2.关闭项目然后重新打开它,在项目初始化中将文件放在列表中.

  • 这对我不起作用.我试过4.3.3和4.6.2在我早于4.2开发的项目中,现在失去了自定义类!机器设定?? 当我创建一个新项目时,我可以将工具栏按钮或项目添加到工具栏,然后无论如何它都会消失! (8认同)
  • 确保您的类是UIViewController的继承.@interface ClassName:UIViewController (4认同)

小智 41

如果您仍有问题,或者遇到同样问题的人:

确保在故事板上选择"ViewController"而不是"View"(当您单击故事板中的视图时自动选择).这两者之间的区别在于,当选择视图控制器时,应用程序周围会弹出一个蓝色矩形.要确保选择视图控制器,请打开文档大纲并直接在故事板层次结构中选择它.

在此输入图像描述 在此输入图像描述 在此输入图像描述


tig*_*ero 13

我会尝试以下方法:

  1. 检查实现该类的文件是否为构建阶段的一部分(在目标 > 构建阶段下检查)
  2. .m文件添加到构建阶段(如果尚未添加).
  3. 重启Xcode.


Bil*_*ngs 12

您可以通过编辑Storyboard的XML来解决此问题.

  1. My.storyboardProject Navigator面板中右键单击您的条目,然后选择Open As-> SourceCode菜单选项.在XML中查找视图控制器条目,然后添加属性customClass="MyController".

  2. 保存故事板.

  3. 再次右键单击Project Navigator面板My.storyboard中的条目,然后选择Open As-> Interface Builder - Storyboard菜单选项.

自定义类条目现在将包含您的MyController类名.


mik*_*rgh 6

Make sure your class inherits from UIViewController.

@interface ClassName : UIViewController
Run Code Online (Sandbox Code Playgroud)


Mat*_*ley 5

在 Xcode 8 中,我的一些类为其文件位置指定了错误的路径(区分大小写)。

MyProject/mysubdirectory/MyViewController.xib (.m, .h)
Run Code Online (Sandbox Code Playgroud)

对比:

MyProject/MySubdirectory/MyViewController.xib (.m, .h)
Run Code Online (Sandbox Code Playgroud)

真的不确定它是如何最终处于那种状态的,但我的项目表现出与上述完全相同的行为(IB 中没有显示出口/动作),并且修复该路径解决了问题。

我修复了这两种不同的方式。一种方法是我打开 .pbxproj 文件并手动修复区分大小写的问题。另一种有效的方法是点击文件“文件检查器”选项卡的“身份和类型”部分下的文件夹图标,然后在那里重新选择文件。