在我的应用中,我有UIViewController
和UIView
名为
它们都是从nib加载的,nib文件的名称与类名相同 当我尝试初始化我的ViewController时:
HomeViewController *h = [[HomeViewController alloc] init];
它尝试使用我的UIView的nib文件而不是我的ViewController的nib来加载viewController,如果我使用initWithNibNamed
加载它可以正常工作。
这是iOS中的一个错误我之前从未遇到过这个问题。我正在对抗iOS 5 beta 5
答案 0 :(得分:2)
这是您命名视图和viewcontroller导致问题的方式。来自Apple的documentation(查看nibName属性)
如果视图控制器类名称以“Controller”结尾,则为 在MyViewController中,它查找名称与之匹配的nib文件 没有单词“Controller”的类名,如MyView.nib中所示。
- 醇>
查找名称与视图控制器名称匹配的nib文件 类。例如,如果类名是MyViewController,它看起来 对于MyViewController.nib文件。
例如,如果您将HomeView更改为MyHomeView,您的代码将重新开始工作。但是使用initWithNibName:方法是初始化ViewController的推荐方法