我在控制台得到以下错误:

应用程序在启动结束时应该有一个根视图控制器

下面是我的应用程序:didFinishLaunchWithOptions方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Set Background Color/Pattern
    self.window.backgroundColor = [UIColor blackColor];
    self.tabBarController.tabBar.backgroundColor = [UIColor clearColor];
    //self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"testbg.png"]];

    // Set StatusBar Color
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];

    // Add the tab bar controller's current view as a subview of the window
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

在Interface Builder中,UITabBarController的委托被连接到App委托。

有人知道怎么解决这个问题吗?


当前回答

如果你使用MTStatusBarOverlay,你会得到这个错误。

MTStatusBarOverlay创建了一个额外的窗口([[UIApplication sharedApplication] windows),它没有根控制器。

这似乎没有引起问题。

其他回答

ARC更改:

改变

@synthesize window;

而不是

@synthesize window=_window;

你试过设置委托吗?

self.rootController.delegate = self;

在applicationDidFinishLaunchingWithOptions吗?这对我很有效,尽管我不确定为什么。

以上建议没有一个能解决我的问题。我的回答是:

Add:

window.rootViewController = navigationController;

后:

[window addSubview:navigationController.view];

在我的appdelegate中

- (void)applicationDidFinishLaunching:(UIApplication *)application {

尝试将选项卡栏控制器的IBOutlet连接到接口生成器中的根视图,而不是

self.window.rootViewController = self.tabBarController;

但实际上我还没见过这样的错误。

当文件的主窗口所有者时也会出现此错误。Xib设置不正确。

文件的所有者是UIApplication->应用程序委托类的插入对象,窗口出口连接到窗口