无法创建UINavigationController

时间:2014-11-18 12:44:15

标签: ios objective-c uinavigationcontroller

对于我当前的应用,我正在使用UIStoryboard并以图形方式设置初始视图控制器,但是当我再次尝试使用initialViewController弹出设置UINavaigationContoller时,例外情况说

  

[__NSPlaceholderDictionary initWithObjects:forKeys:count:]:尝试从对象[1]'

插入nil对象

我想出了这一行中的异常

 UINavigationController *navController=[[UINavigationController alloc]initWithRootViewController:detailViewController];

但是当我将上面一行更改为

 UINavigationController *navController = [[UINavigationController alloc]init];

我不会有任何例外。

我正在编写考虑UIStoryboard的代码,但我想这个异常代码适用于XIB

这里发生了什么?

2 个答案:

答案 0 :(得分:0)

在分配给NavControler之前,您应该确保创建了detailViewController。

   // You must:
  UIViewController *detailViewController = [[UIViewController alloc] init];


   UINavigationController *navController=[[UINavigationController alloc]initWithRootViewController:detailViewController];

如果您正在使用storyBoards,请添加星形viewController UINavigationController并将根segue与您的detailViewController连接。 (此外,您可以创建NavigationController的插座,以便通过代码放置一些属性。)

答案 1 :(得分:0)

首先导入DetailViewController和创建对象,如下面的代码

DetailViewController *detailVC = [[DetailViewController alloc] init];
UINavigationController *navController=[[UINavigationController alloc]initWithRootViewController:detailVC];