在 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 属性在应用程序中被忽略