我在控制台中收到以下错误:
应用程序在应用程序启动结束时应具有根视图控制器
以下是我的application: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;
}
Run Code Online (Sandbox Code Playgroud)
在Interface Builder中,UITabBarController代理连接到App Delegate.
有谁知道如何解决这个问题?
我正在尝试将我的iPhone应用程序转换为通用应用程序.我将设备切换到Universal并让Xcode为我做了一个MainWindow-iPad.xib的事情,现在当我在iPhone模拟器中运行应用程序时,它工作正常,但是当我在iPad模拟器中运行它时,我得到一个白色屏幕和Application windows are expected to have a root view controller at the end of application launch错误.我已经阅读了一些关于同样问题的其他帖子,但没有一个仅限于一个设备.
这是我的application:didFinishLaunchWithOptions:方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/* some dropbox setup stuff */
// INIT VIEW AND CORE DATA
RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
NSManagedObjectContext *context = [self managedObjectContext];
if (!context) {
// Handle the error.
}
rootViewController.managedObjectContext = context;
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController = aNavigationController;
[_window addSubview:[_navigationController view]];
[_window makeKeyAndVisible];
[rootViewController release];
[aNavigationController release]; …Run Code Online (Sandbox Code Playgroud) 当我运行我的应用程序时,我在控制台中收到一条消息:
2011-11-16 19:17:41.292 Juice [8674:707]应用程序在应用程序启动结束时应该有一个根视图控制器
我从别人那里听说这与这个方法有关 didFinishLaunchingWithOptions
如果有人对我收到此错误的原因有任何建议,我将不胜感激.
我的方法代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
return YES;
}
Run Code Online (Sandbox Code Playgroud) 我现在已经坚持了几个小时这个警告.我一直在寻找答案,尝试了我找到的所有答案,但找不到解决办法.这是我所拥有的代码的破败,Xcode默认生成.
这是我的AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我在main.m上有这个(根据这个答案)
int main(int argc, char *argv[])
{
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
我也正确连接了我的MainWindow.xib中的所有连接.所以我现在不知所措.我可能遗失的任何东西?提前致谢!
我有这个问题,但是我在这个论坛或互联网上找到的信息似乎都无法帮助我.
似乎有两个地方会出现此错误:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
Run Code Online (Sandbox Code Playgroud)
最后一个参数UIApplicationMain返回NSString我的类的值AppDelegate.因此工作正常.
2.AppDelegate.m - 有一种设置根视图控制器的"旧"方法,如下所示:
[self.window addSubview:rootViewController];
Run Code Online (Sandbox Code Playgroud)
但是,在我的应用程序中,它已更新为:
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
因此,互联网上的当前信息都不起作用.更令人费解的是,我的同事可以让它在他的计算机上工作得非常好 - 他是那个向我发送应用程序源代码的人,所以所有的设置和代码应该完全相同.
我试图在模拟器中启动它.它是针对iOS 5构建的,但我试图在iOS 6.0模拟器上运行它.
我有最新的XCode(4.5.1).
有什么理由会发生这种情况吗?我该如何纠正呢?
非常感谢
汤姆