1

从 4.4 升级到 Xcode 4.5 后,我运行了我在 v 4.4 中制作的应用程序。虽然应用程序编译正确,但我在调试区域的输出部分看到以下消息:

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

有人可以告诉我为什么升级后我会看到此消息吗?我浏览了类似问题的一些答案。但是我没有找到任何可以告诉我为什么在升级后看到此消息的信息。

谢谢!

编辑1:

我应该将代码合并到 AddDelegate.m 中吗?如果是的话,我在读一本书时做了类似的事情。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    [[NSBundle mainBundle] loadNibNamed:@"TabBarController" owner:self options:nil] 
    [self.window addSubview:rootController.view];

    [self.window makeKeyAndVisible];
    return YES;
}
4

2 回答 2

4

在 iOS 3.x 及更低版本中,您曾经这样做过:

[window addSubview:tabBarController.view]

从 iOS 4 开始,规范的方法是这样做:

window.rootViewController = tabBarController;

如果你不需要支持 iOS 2.x/3.x,那么你应该升级你的代码来做后者。

IIRC,该警告自 iOS 5 以来就存在。它取决于您运行的 iOS 版本,而不是 Xcode 版本。

于 2012-09-22T21:11:14.003 回答
2

如果您以编程方式设置了视图控制器,那么在您的应用程序委托didFinishLaunchingWithOptions方法中尝试以下操作:

[self.window setRootViewController: yourRootViewController];

如果您通过 XIB 设置视图控制器,那么如果设置正确,您的根视图控制器应该默认设置!(这可能是您项目中的 MainWindow.xib 文件)

于 2012-09-22T20:15:45.367 回答