When I am running my app in iPhone 6.0 simulator, it is showing
Application windows are expected to have a root view controller at the end of application launch
In other simulators it is not there. Why?
What is the meaning of this error?
The navigation flow of my app is like : First my app should show login screen. After entering in to the app, I need to show one view with tabbar. In that view So many buttons will be there, and when we clicking these button it should show respective viewcontrollers without a tabbar. Thats why i added those navigation controllers to the window.
Here is my code for didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.tabBarController = [[UITabBarController alloc] init];
self.window.rootViewController = self.tabBarController;
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor=[UIColor blackColor];
[application setStatusBarStyle:UIStatusBarStyleBlackOpaque];
Object1 = [[Class1 alloc] initWithNibName:@"Class1" bundle:nil];
tempNav=[[UINavigationController alloc]initWithRootViewController:Object1];
tempNav.navigationBar.hidden=YES;
tempNav.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
self.window addSubview:tempNav.view];
LoginObj = [[Login alloc] initWithNibName:@"Login" bundle:nil];
navController=[[UINavigationController alloc]initWithRootViewController:LoginObj];
navController.navigationBar.hidden=YES;
navController.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController.view];
Obj2 = [[Class2 alloc] initWithNibName:@"Class2" bundle:nil];
navController1=[[UINavigationController alloc]initWithRootViewController:Obj2];
navController1.navigationBar.hidden=YES;
navController1.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController1.view];
Obj3 = [[Class3 alloc] initWithNibName:@"Class3" bundle:nil];
navController2=[[UINavigationController alloc]initWithRootViewController:Obj3];
navController2.navigationBar.hidden=YES;
navController2.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController2.view];
Obj4 = [[Class4 alloc] initWithNibName:@"Class4" bundle:nil];
navController3=[[UINavigationController alloc]initWithRootViewController:Obj4];
navController3.navigationBar.hidden=YES;
navController3.view.frame = CGRectMake(0.0f, 20.0f, 320.0f, 460.0f);
[self.window addSubview:navController3.view];
[self.window makeKeyAndVisible];
return YES;
}
As wattson12 said, you need to do something like this in your app delegate:
If you haven’t explicitly set the
UIWindowrootViewController property, you’ll see this message.If you use Xcode 4.5 to create a new project, it should have this code in the template app delegate. If you’re using a project you created in an earlier version of Xcode, that line would probably be missing, and you’d get the warning message.