如何在Interface Builder中以root身份创建一个带UITableViewController的UINavigationController?

时间:2012-10-13 13:41:39

标签: iphone ios xcode xcode4 interface-builder

1)在我的app委托中,我创建了一个根视图控制器,它是一个导航控制器:

self.navigationController = [[UINavigationController alloc] initWithNibName:@"RootNavigationController" bundle:nil];
self.window.rootViewController = self.navigationController;

2)“RootNavigationController.xib”创建UINavigationController。它还定义了一个根视图控制器,它是CatsViewController : UITableViewController。有一个CatsViewController文件和一个带有UITableViewController根对象的“CatsViewController.xib”。就像你在这个截图中看到的那样,我相应地设置了NIB名称:

enter image description here

问题是,即使有一个CatsViewController.xib文件,Xcode也不允许我从下拉列表中选择CatsViewController。我希望我的UINavigationController的XIB以root身份创建CatsViewController的实例,我想通过一个单独的nib文件配置这个根控制器。

Xcode警告:

enter image description here

有办法吗?

1 个答案:

答案 0 :(得分:1)

您获得的错误是由于AppDelegate中的didFinishLaunchingWithOptions方法尝试初始化窗口而不是仅返回YES。

也在您的代码中更改RootNavigationController,如:

self.navigationController = [[UINavigationController alloc] initWithNibName:@"RootNavigationController" bundle:nil];

将其更改为

self.navigationController = [[UINavigationController alloc] initWithNibName:@"CatsViewController" bundle:nil];