| In order for viewWillAppear and viewDidAppear to function properly in a tab bar controller, you'll want to be sure to call those methods when you display the tab bar controller itself. That is, if you are creating your UITabBarController programmatically, be sure to call those methods:If your tab bar controller is being created in a NIB file, this doesn't apply - and in that case I'm not sure why your viewDidAppear method would not be called automatically. |
Showing posts with label Tabbar. Show all posts
Showing posts with label Tabbar. Show all posts
Tuesday, March 1, 2011
Thursday, February 10, 2011
Customize Tabbar
CGRect frame = CGRectMake(0, 0, 480, 50);
UIView *v = [[UIView alloc] initWithFrame:frame];
UIImage *i = [UIImage imageNamed:@"btm-bar.png"];
UIColor *c = [[UIColor alloc] initWithPatternImage:i];
// UIColor *c = [UIColor blueColor];
v.backgroundColor = c;
[appdeleg.tabBarControllerr.tabBar insertSubview:v atIndex:0];
UIView *v = [[UIView alloc] initWithFrame:frame];
UIImage *i = [UIImage imageNamed:@"btm-bar.png"];
UIColor *c = [[UIColor alloc] initWithPatternImage:i];
// UIColor *c = [UIColor blueColor];
v.backgroundColor = c;
[appdeleg.tabBarControllerr.tabBar insertSubview:v atIndex:0];
Thursday, December 16, 2010
Creating a Tabbar
Creating a Tabbar
The basic idea is as follows: a UITabBarController contains an array of UIViewController objects, and these views are swapped when one of the tabbar buttons is clicked. You can see in the code below how I setup the view controllers that will be displayed for each tab, and add those controllers into the tabbar controller array.
The resulting tabbar looks as follows:
The interface file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // // BirdBookAppDelegate.h #import <UIKit/UIKit.h> @interface BirdBookAppDelegate : NSObject <UIApplicationDelegate> { UINavigationController *navigationController; UIWindow *portraitWindow; UITabBarController *tabBarController; } @property (nonatomic, retain) UINavigationController *navigationController; @property (nonatomic, retain) UITabBarController *tabBarController; @property (nonatomic, retain) UIWindow *portraitWindow; @end |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | // BirdBookAppDelegate.m #import "BirdBookAppDelegate.h" #import "Bird.h" #import "AllBirds.h" @implementation BirdBookAppDelegate @synthesize navigationController; @synthesize tabBarController; @synthesize portraitWindow; /*************************************************************************/ - (void) configureUI { // Create nav-controller for local use UINavigationController *localNavController; // Create portrait window and content view (to hold other views) UIWindow *localPortraitWindow; localPortraitWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; self.portraitWindow = localPortraitWindow; [localPortraitWindow release]; // Retained by delegate thru above setter // Set background color [portraitWindow setBackgroundColor:[UIColor blackColor]]; // New tabbar controller and array to contain the view controllers // There are two (2) view controllers needed // One for "Identify Bird" and one for "Lookup Bird" tabBarController = [[UITabBarController alloc] init]; NSMutableArray *localViewControllersArray = [[NSMutableArray alloc] initWithCapacity:2]; /*-------------------------------------------------------------------- * Setup the 2 view controllers for the different data representations *-------------------------------------------------------------------*/ // Root view controller for "Identify Bird" IdentifyBirdRootViewController *vc; vc = [[IdentifyBirdRootViewController alloc] initWithStyle:UITableViewStylePlain]; localNavController = [[UINavigationController alloc] initWithRootViewController:vc]; localNavController.tabBarItem.image = [UIImage imageNamed:@"123.png"]; [vc release]; // This is now managed by the navigation controller // Add navigation controller to the local vc array (1 of 2) [localViewControllersArray addObject:localNavController]; [localNavController release]; // Retained by above array // Root view controller for "Lookup Bird" vc = [[LookupBirdRootViewController alloc] initWithStyle:UITableViewStyleGrouped]; localNavController = [[UINavigationController alloc] initWithRootViewController:vc]; localNavController.tabBarItem.image = [UIImage imageNamed:@"ABC.png"]; [vc release]; // This is now managed by the navigation controller // Add navigation controller to the local vc array (2 of 2) [localViewControllersArray addObject:localNavController]; [localNavController release]; // Retained by above array // Point the tab bar controllers view controller array to the array // of view controllers we just populated tabBarController.viewControllers = localViewControllersArray; [localViewControllersArray release]; // Retained thru above setter // Add subview to portrait window to reference the tabbarcontroller [portraitWindow addSubview:tabBarController.view]; // Show it [portraitWindow makeKeyAndVisible]; } /*************************************************************************/ - (void) applicationDidFinishLaunching:(UIApplication *)application { // Configure the user interface (tabbar, nav controllers, etc) [self configureUI]; } /*************************************************************************/ - (void) dealloc { [tabBarController release]; [portraitWindow release]; [navigationController release]; [super dealloc]; } @end |
Subscribe to:
Posts (Atom)