Eigenes TabBar Objekt mit ViewController

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:

  1. Klasse für ViewController erstellen (Bsp.: MyTabItemViewController) Typ der Klasse: UIViewController
  2. Neue View Nib / XIB File erstellen (Bsp.: MyTabItemView.xib)
  3. In MyView.xib den Typ des File Owners auf den Controller umstellen (Bsp. MyTabItemViewController)
  4. In MyView.xib eine Verbindung zwischen FileOwner und der View herstellen vom Typ view
  5. Implementierung MyTabItemViewController (siehe unten A)
  6. 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];
[...]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.