在 Interface Builder 中设置 Nib Name 字段时出现异常

Posted

技术标签:

【中文标题】在 Interface Builder 中设置 Nib Name 字段时出现异常【英文标题】:Exception When Setting the Nib Name field in Interface Builder 【发布时间】:2009-05-14 11:33:51 【问题描述】:

我正在尝试从 Interface Builder 中的 nib 加载视图控制器。我的基本设置是这样的:

MainWindow.xib 包含: 所有常用的东西,应用程序委托实例,窗口等。

具有 UIViewController 作为根视图控制器的 UINavigationController。 UIViewController 的 nib 名称设置为包含我的视图控制器的 xib 的名称。

我单独的 xib 中的视图控制器将文件所有者的类型设置为该视图的控制器类。

每当视图加载时(即应用程序启动时),都会引发异常,指出我的控制器类不符合键的键值编码[在此处插入随机变量名称]。大多数情况下,键是我为按钮指定的名称或我设置为 IBOutlet 的其他名称。

为什么会这样?我错过了什么?我尝试为这些变量中的每一个创建属性以生成符合 KVC 的访问器,但它仍然会引发异常。

任何帮助都会很棒,谢谢!

【问题讨论】:

"我单独的 xib 中的视图控制器将文件所有者的类型设置为该视图的控制器类。"您的意思是 xib 本身将其文件所有者的类设置为该视图的控制器类? 【参考方案1】:

应用程序试图将您的 UIViewController 视为 UINavigationController,但事实并非如此。

将根视图控制器子类化为 UINavigationController,而不是 UIViewController:

@interface rootViewController : UINavigationController 

【讨论】:

以上是关于在 Interface Builder 中设置 Nib Name 字段时出现异常的主要内容,如果未能解决你的问题,请参考以下文章

在 Interface Builder (XCode 4) 中设置 UIButton 拉伸背景图像

如何在 XCode 5 Interface Builder 中设置accessibilityLabel 或accessibilityIdentifier?

自定义字体仅在 Interface Builder 中设置时可用

如何使用主 iPhone 视图之外的 UI 元素在 Interface Builder 中设置 UIScrollView?

在 Interface Builder 中设置为 UIButton 的 Attributed Title 属性在应用程序中被忽略

Interface Builder 中的自定义字体