Hi I just started experimenting on iOS 5. I created a project without storyboard and trying to add views programmatically (no use of interface builder at all). I have following code but rootViewController property of the window does not seem to work. I did NSLog on
self.tabController and it shows me value(not null) but on the other side when after
self.window.rootViewController = self.tabController, i output
self.window.rootViewController it gives me null in console.
I have been struggling with this issue for a long time now. Any help would be appreciated.
Following is my
self.dataSource = [[[ADJWebDataSource alloc] init] autorelease]; ADJBrowseListingsViewController *browseListingsVC = [[ADJBrowseListingsViewController alloc] init]; ADJSecondViewController *secondVC = [[ADJSecondViewController alloc] init]; tabBarController = [[UITabBarController alloc] init]; tabBarController.view.frame = CGRectMake(0, 0, 320, 460); navController = [[UINavigationController alloc] initWithRootViewController:browseListingsVC]; NSMutableArray* viewControllers = [[NSMutableArray alloc] initWithCapacity:2]; [viewControllers addObject:browseListingsVC]; [viewControllers addObject:secondVC]; [navController release]; [browseListingsVC release]; [secondVC release]; tabBarController.viewControllers = viewControllers; [viewControllers release]; browseListingsVC.dataSource = self.dataSource; NSLog(@"controller %@", self.tabBarController); self.window.rootViewController = self.tabBarController; NSLog(@"controller1 %@", self.window.rootViewController); [self.window makeKeyAndVisible]; return YES;
When you are using story board, why are you still creating objects for view controllers? You can directly prepare the flow of your views in story board, add necessary segues etc. If your view controller is floating (without any segues), you have to use the method "instantiateViewControllerWithIdentifier" in story board class.
For a view controller if you want to add navigation in story board, select the view controller, go to menu "Editor"->"Embed in" and select navigation controller. It will add navigation controller to your view controller.
Figured it out with the help of Firoze. Actually, I had to allocate and initialize self.window programmatically. I was confused as I never had to do that in iOS 4 or earlier. But then I just realized prior to iOS5, every project has a MainWindow.xib which had self.window allocated and initialized, now if I am not using storyboard in iOS5, there is no .xib file, I needed to allocate and initialize it myself in the code