首先,我是一个初学者,所以我可能会误解我的概念。

这是我在AppDelegate.m中的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"FirstView" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController: viewController];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}


想法是通过编程方式添加UINavigationController,然后对视图使用.xib(“ FirstView”参数)。我也没有以编程方式创建视图的问题,但是对于更简单的界面,我认为也可以使用IB。

但是,当我运行代码时,出现此错误:

2013-07-11 21:20:42.644 new-book-proto-01[64308:11303] *** Terminating app due
to uncaught exception 'NSInternalInconsistencyException', reason:
'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FirstView" nib
but the view outlet was not set.'


我该怎么办?缺少什么吗?

另外,这种情况在iOS开发中很常见吗?这是不好的做法吗?有一个更好的方法吗?

最佳答案

原因如下:“原因:
'-[UIViewController _loadViewFromNibNamed:bundle:]加载了“ FirstView”笔尖
但未设置视图出口。” ”

这意味着您尝试访问某些控制器类中没有IBOutlet或完全没有视图的视图(UI元素)或获取值

您应该为要在控制器中“看到”的每个视图(每个UI元素都是视图)创建IBOutlets(属性)

关于ios - 如何将NIB添加/连接到以编程方式创建的UINavigationController?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17596100/

10-12 04:41