我创建了一个基于窗口的新应用程序。我立即创建了一个类作为ViewController的子类,并在appdelegate didFinishLaunchingWithOptions方法中添加了以下代码
TestView myView = [[TestView alloc] initWithNibName:nil bundle:nil];
[self.window makeKeyAndVisible]; [self.window addSubview:mainMenu.view];
[mainMenu发布]
然而,尽管如此,它仍然初始化笔尖。如果我在TestView.xib中放置一个按钮,它在技术上应该显示它是否正确?我没有笔尖初始化TestView?为什么会出现?
答案 0 :(得分:0)
如果将nil
传递给-initWithNibName:bundle:
,它将尝试从主包中加载一个nib,该nib具有与子类名称匹配的文件名,或者没有&的子类名称#34;控制器"后缀。
答案 1 :(得分:0)
如果你不想从笔尖想要它,你不应该以这种方式初始化它,它仍然会搜索与类名完全匹配的xib。
如果为nibName参数指定nil,则必须覆盖loadView方法并在那里创建视图,或者必须在包中提供一个nib文件,其名称(不带.nib扩展名)与视图控制器的名称相匹配类。 (在后一种情况下,类名将成为存储在nibName属性中的名称。)如果不执行这些操作,则视图控制器将无法加载其视图。