Um in eine TabBarNavigation einer iPhone Anwendung ein neues TabBarNavi-Item hinzuzufügen, welches einen eigenen Controller (UIViewController) und eine eigene View hat sind folgende Schritte notwendig:
- Klasse für ViewController erstellen (Bsp.: MyTabItemViewController) Typ der Klasse: UIViewController
- Neue View Nib / XIB File erstellen (Bsp.: MyTabItemView.xib)
- In MyView.xib den Typ des File Owners auf den Controller umstellen (Bsp. MyTabItemViewController)
- In MyView.xib eine Verbindung zwischen FileOwner und der View herstellen vom Typ view
- Implementierung MyTabItemViewController (siehe unten A)
- Implementierung in AppDelegate (siehe unten B)
A: Implementierung MyViewController:
//
// MyTabItemViewController.m
// TabBar
//
// Created by Alexander Jäger on 04.09.09.
// Copyright 2009 mediajaeger.de. All rights reserved.
//
#import "MyTabItemViewController.h"
@implementation MyTabItemViewController
// Override initWithNibName:bundle: to load the view using a nib file then perform additional customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
self.title = @"MyTabItemView";
self.tabBarItem.image = [UIImage imageNamed:@"all.png"];
}
return self;
}
- (void)dealloc {
[super dealloc];
}
@end
A: Implementierung AppDelegate:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[...]
tabBarController = [[UITabBarController alloc] init];
MyTabItemViewController *aMyTabItemViewController = [[MyTabItemViewController alloc] initWithNibName:@"MyTabItem" bundle:nil];
// other ViewController
[...]
// add the Controller to the RootController
tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController,aMyTabItemViewController, nil];
[...]
// release
[aMyTabItemViewController release];
[...]