启动基于iPad的iOS应用程序后,我的控制台出现以下错误:
"Application windows are expected to have a root view controller at the end of application launch"
我已经查看过引用此错误的其他问题的答案,但这些问题似乎都不是我的特定问题。
事实上,我遇到的唯一症状是app启动时控制台中的消息。我的应用程序似乎运行正常并且完全按照我的意愿执行。
我正在使用单个故事板文件(Main.storyboard)来生成我的应用程序的UI(带有几个用于自定义视图的XIB文件)。我的所有UIViewController
子类UI都包含在单个故事板中。该故事板在我的“部署信息”中被指定为“主界面”。
以下是我AppDelegate
中的代码(我删除了一些非基于UI的应用初始化代码):
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MSSAppSingleton *app = [MSSAppSingleton singleton];
// Other, non-UI code, like TestFlight, etc.
UISplitViewController *split = (UISplitViewController *)self.window.rootViewController;
UINavigationController *leftNavVc = split.viewControllers[0];
UINavigationController *rightNavVc = split.viewControllers[1];
app.containerSplitViewController = split;
app.leftRoot = leftNavVc.viewControllers[0];
app.rightRoot = rightNavVc.viewControllers[0];
return YES;
}
此代码似乎运行没有问题。我正在抓取这些引用以供以后的UI操作,所有这些都可以按照需要运行。上面的每一行代码都按照我的预期运行。 self.window
有一个有效的参考。 self.window.rootViewController
也有。
所以,这不是一个“问题”,除了我遵循“将每个警告视为一个错误”的理念,并希望得到这个警告消失。有没有人见过这个?我正在使用Xcode 5.0.2并运行iPad 7.0.3模拟器。
答案 0 :(得分:1)
MSSAppSingleton *app = [MSSAppSingleton singleton];
应该在
之前调用app.containerSplitViewController = split;
答案 1 :(得分:0)
设置根视图控制器时,Xcode喜欢它
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController: someViewController];
[self.window makeKeyAndVisible];
我自己不会使用故事板。
您可能需要设置根目录,而不仅仅是获取它,然后将内容应用于它以使其满意。