iOS - 初始化UIViewControllers

时间:2011-09-07 01:29:50

标签: iphone ios uiview uiviewcontroller

在我的应用中,我有UIViewControllerUIView名为

  • HomeViewController
  • HomeView

它们都是从nib加载的,nib文件的名称与类名相同 当我尝试初始化我的ViewController时:

HomeViewController *h = [[HomeViewController alloc] init];

它尝试使用我的UIView的nib文件而不是我的ViewController的nib来加载viewController,如果我使用initWithNibNamed加载它可以正常工作。

这是iOS中的一个错误我之前从未遇到过这个问题。我正在对抗iOS 5 beta 5

1 个答案:

答案 0 :(得分:2)

这是您命名视图和viewcontroller导致问题的方式。来自Apple的documentation(查看nibName属性)

  
      
  1. 如果视图控制器类名称以“Controller”结尾,则为   在MyViewController中,它查找名称与之匹配的nib文件   没有单词“Controller”的类名,如MyView.nib中所示。

  2.   
  3. 查找名称与视图控制器名称匹配的nib文件   类。例如,如果类名是MyViewController,它看起来   对于MyViewController.nib文件。

  4.   

例如,如果您将HomeView更改为MyHomeView,您的代码将重新开始工作。但是使用initWithNibName:方法是初始化ViewController的推荐方法