为什么nil笔尖名称不起作用?

时间:2012-06-07 04:32:37

标签: ios nib

通常当我将nil作为initWithNibName:bundle:的第一个参数传递时,它会自动找到该名称,但有时它不会显示该名称,它只会显示黑屏。在什么情况下会发生这种情况?控制台窗口中没有错误,除非我将nil更改为笔尖名称的字符串文字,否则应用程序会愉快地继续作为黑屏运行。我在哪里可以检查以解决这个问题?

3 个答案:

答案 0 :(得分:2)

你很可能有一个viewcontroller来指向nib名称不一致 加载笔尖的作用如下:

如果将nil传递给nib名称,则sdk将执行以下操作

  
      
  1. 如果视图控制器类名以单词“Controller”结尾,就像在MyViewController中一样,它会查找名称与之匹配的nib文件   没有单词“Controller”的类名,如MyView.nib。
  2.   
  3. 查找名称与视图控制器类名称匹配的nib文件。例如,如果类名是MyViewController,   它查找MyViewController.nib文件。
  4.   

Apple documentation

答案 1 :(得分:1)

我以前从未在[UIViewController initWithNibName: bundle:]的第一个参数中传递“nil”,但Apple的文档说:

  

如果为nibName参数指定nil而不覆盖   在loadView方法中,视图控制器使用搜索nib文件   其他方式。请参阅nibName。

所以大概你在loadView方法中做了些什么。

在实例化视图控制器时,可能只是指定显式.xib名称可能是最安全的(也是最佳实践)。

答案 2 :(得分:0)

您可以始终只使用init并覆盖viewDidLoad。