4

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

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

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

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

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

4

6 回答 6

8

Try doing it the other way around.

  • Delete the navigation controller
  • Select the lasting view controller, in the menu "Editor > Embed in > Navigation Controller"
  • Check if the navigation controller has "Is Initial View Controller" selected
  • Check if in the AppDelegate there is no unnecessary code put in the applicationDidFinish method (should be empty if you didn't put a custom code in it)
  • Check if your view controller contains -(void)loadView and delete the method to avoid a black screen on startup

Hope it helps.

于 2012-07-17T09:57:53.350 回答
6

在 Xcode 8 中:

  1. 右键单击并从导航控制器拖动到视图控制器。
  2. 在弹出窗口中的“Relationship Segue”部分下选择根视图控制器。
于 2016-11-26T15:06:03.247 回答
4

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

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

这应该有效,对我来说有效。

于 2012-12-17T01:56:11.167 回答
2
  1. 在 Interface Builder 中选择 View Controller
  2. 打开属性检查器
  3. 设置复选框“初始视图控制器”
于 2014-09-06T14:30:36.437 回答
0

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

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

于 2013-06-10T21:17:23.460 回答
-1

My solution was to start a new project with "Single View" instead of "Empty"

于 2012-08-09T09:01:02.397 回答