使用接口构建器设置根控制器

时间:2012-07-17 08:23:33

标签: iphone xcode rootview

当我将导航控制器拖到故事板上时,我得到了导航控制器和一个表视图控制器。我不想要表视图,所以我删除它,插入常规视图控制器,将其类更改为例如LoginView,右键单击并拖动:从导航控制器到视图控制器的“关系根视图控制器”。

现在,当我运行应用程序时,我得到了

Application windows are expected to have a root view controller at the end of application launch

我不想以编程方式修复此问题,因为上次我这样做了它开箱即用(xcode 4.2,现在我升级到4.3)。此外,在4.2中添加导航控制器时,它带有一个视图控制器,而不是一个表视图控制器。

导航控制器已设置“是初始视图控制器”。

6 个答案:

答案 0 :(得分:7)

尝试相反的方式。

  • 删除导航控制器
  • 在“编辑器>嵌入>导航控制器”菜单中选择持久视图控制器
  • 检查导航控制器是否选择了“是初始视图控制器”
  • 检查AppDelegate中是否没有在applicationDidFinish方法中放入不必要的代码(如果你没有在其中放入自定义代码,则应为空)
  • 检查您的视图控制器是否包含-(void)loadView并删除方法以避免启动时出现黑屏

希望它有所帮助。

答案 1 :(得分:5)

在Xcode 8中:

  1. 右键单击并从导航控制器拖动到视图控制器。
  2. 在弹出窗口的“关系搜索”部分下选择根视图控制器

答案 2 :(得分:4)

这是一个旧帖子,但对于那些仍然存在这个问题的帖子。

  • 在xib中你需要一个视图控制器和一个窗口。
  • 选择窗口并转到“Connections Inspector”
  • 将rootViewController与视图控制器连接

这应该有用,对我来说它有用。

答案 3 :(得分:2)

  1. 在Interface Builder中选择View Controller
  2. 打开属性检查器
  3. 设置复选框“初始视图控制器”

答案 4 :(得分:0)

问题出在AppDelegate.m中: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

尝试将除了返回之外的所有内容注释掉。制作空应用程序时,会为您插入此代码,并干扰您在故事板上的根视图控制器中执行的初始视图控制器检查。同样在您的项目目标中,请确保info.plist将您的故事板显示为主板。然后最后确保在故事板视图中检查了初始视图控制器。选择视图控制器,然后查看其属性。检查那个小盒子。

答案 5 :(得分:-1)

我的解决方案是用" Single View"开始一个新项目。而不是"空"