Reputation: 151
Iam using xcode4.2 i added 3 items for tabbar in singe view application .
The problem is i cant visualize the output instead of a black screen is shown on ios simulator
Can anyone help me please
my code is
@synthesize window = _window;
@synthesize viewController = _viewController;
@synthesize appNavigation = _appNavigation;
- (void)dealloc
{
[_window release];
[_viewController release];
[_appNavigation release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
UITabBarController *tabController = [[UITabBarController alloc] init];
NSMutableArray *tabsArray = [[NSMutableArray alloc] init];
`enter code here`ViewController *homeScreen = [[ViewController alloc] init];
homeScreen.navigationItem.title = @"App Title";
_appNavigation = [[UINavigationController alloc]initWithRootViewController:homeScreen];
_appNavigation.tabBarItem.title = @"Home";
[_appNavigation.tabBarItem setImage:[UIImage imageNamed:@"Home_Button.png"]];
[tabsArray addObject:_appNavigation];
[_appNavigation release];
BookmarksViewController *bookMark = [[BookmarksViewController alloc] init];
bookMark.navigationItem.title = @"Bookmarks";
_appNavigation = [[UINavigationController alloc] initWithRootViewController:bookMark];
[_appNavigation.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:2];
_appNavigation.tabBarItem.title = @"Bookmarks";
[tabsArray addObject:_appNavigation];
[_appNavigation release];
AppSettingsController *settings = [[AppSettingsController alloc] initWithStyle:UITableViewStyleGrouped];
settings.navigationItem.title = @"Settings";
_appNavigation = [[UINavigationController alloc] initWithRootViewController:settings];
_appNavigation.tabBarItem.title = @"Settings";
[_appNavigation.tabBarItem setImage:[UIImage imageNamed:@"Settings_Button.png"]];
[tabsArray addObject:_appNavigation];
[_appNavigation release];
SearchViewController *searchView = [[SearchViewController alloc] init];
searchView.navigationItem.title = @"Ranga";
_appNavigation = [[UINavigationController alloc] initWithRootViewController:searchView];
_appNavigation.tabBarItem.title = @"Search";
[_appNavigation.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemSearch tag:4];
[tabsArray addObject:_appNavigation];
[_appNavigation release];
tabController.viewControllers = tabsArray;
LoginViewController *loginView = [[LoginViewController alloc] init];
[self.window addSubview:tabController.view];
[tabController presentModalViewController:loginView animated:NO];
[self.window makeKeyAndVisible];
return YES;
}
@end
Upvotes: 0
Views: 668
Reputation: 35783
Just update your application code this way.
1. change in code
open AppDelegate.h file it should be like
#import <UIKit/UIKit.h>
@class FirstViewController,SecondViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>
@property (strong, nonatomic) UIWindow *window;
//these two view controllers (screens) for adding to tabs.
@property (strong, nonatomic) FirstViewController *firstViewController;
@property (strong, nonatomic) SecondViewController *secondViewController;
//this will be the tab bar-controller
@property (strong, nonatomic) UITabBarController *baseTabBarController;
@end
now your AppDelegate.m file code should be like
#import "AppDelegate.h"
#import "FirstViewController .h"
#import "SecondViewController.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize firstViewController;
@synthesize secondViewController;
@synthesize baseTabBarController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// create tab bar
baseTabBarController = [[UITabBarController alloc]init];
baseTabBarController.delegate=self;
// initialize first screen
firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController " bundle:nil];
UINavigationController *homeView = [[UINavigationController alloc]initWithRootViewController:firstViewController];
firstViewController.title = @"Home ";
// initialize second screen
secondViewController = [[SecondViewController alloc] initWithNibName:@"FavViewController" bundle:nil];
secondViewController.title = @"My Favourite";
UINavigationController *favouriteView = [[UINavigationController alloc] initWithRootViewController:secondViewController];
//add both views in array
NSArray *controllers = [NSArray arrayWithObjects:homeView,favouriteView, nil];
//add array to tab bar
baseTabBarController.viewControllers = controllers;
//add tab bar to window
self.window.rootViewController = baseTabBarController;
[self.window makeKeyAndVisible];
return YES;
}
2. in UI change
now go to xib file for both view controller what we want to add TAB, just change this way in Interface builder
Bottom Bar = Tab Bar
that's it!! you will get two tab at the bottom of your application.
Feel free to ask me if you have any question.
Upvotes: 1