为什么.xib文件初始化,尽管我是initWithNibFile:nil

时间:2011-08-30 23:50:26

标签: iphone ios

我创建了一个基于窗口的新应用程序。我立即创建了一个类作为ViewController的子类,并在appdelegate didFinishLaunchingWithOptions方法中添加了以下代码

  

TestView myView = [[TestView alloc] initWithNibName:nil bundle:nil];

     

[self.window makeKeyAndVisible];   [self.window addSubview:mainMenu.view];

     

[mainMenu发布]

然而,尽管如此,它仍然初始化笔尖。如果我在TestView.xib中放置一个按钮,它在技术上应该显示它是否正确?我没有笔尖初始化TestView?为什么会出现?

2 个答案:

答案 0 :(得分:0)

如果将nil传递给-initWithNibName:bundle:,它将尝试从主包中加载一个nib,该nib具有与子类名称匹配的文件名,或者没有&的子类名称#34;控制器"后缀。

答案 1 :(得分:0)

如果你不想从笔尖想要它,你不应该以这种方式初始化它,它仍然会搜索与类名完全匹配的xib。

从这里找到的苹果文档: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

  

如果为nibName参数指定nil,则必须覆盖loadView方法并在那里创建视图,或者必须在包中提供一个nib文件,其名称(不带.nib扩展名)与视图控制器的名称相匹配类。 (在后一种情况下,类名将成为存储在nibName属性中的名称。)如果不执行这些操作,则视图控制器将无法加载其视图。