Ich lerne gerade die iOS-Entwicklung und bin verwirrt, wie die Titel intern festgelegt werden.
Ich habe den folgenden Code in einer Windows-basierten Vorlage für iPad, und ich mache alles von Grund auf ohne den Interface Builder:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UISplitViewController *svc = [[UISplitViewController alloc] init];
UINavigationController *leftNav = [[UINavigationController alloc] init];
UIViewController *leftView = [[LeftViewController alloc] init];
[leftNav pushViewController:leftView animated:NO];
[leftView release];
UINavigationController *rightNav = [[UINavigationController alloc] init];
UIViewController *rightView = [[RightViewController alloc] init];
[rightNav pushViewController:rightView animated:NO];
[rightView release];
UITabBarController *tbc = [[UITabBarController alloc] init];
tbc.viewControllers = [NSArray arrayWithObjects:leftNav, nil];
[leftNav release];
svc.viewControllers = [NSArray arrayWithObjects:tbc, rightNav, nil];
[tbc release]; [rightNav release];
self.window.rootViewController = svc;
[self.window makeKeyAndVisible];
return YES;
}
Ich möchte einen benutzerdefinierten kurzen Titel für die TabBarItem für LeftViewController, und einen langen Titel für die NavigationController-Leiste oben haben. Nach ein paar Versuchen habe ich festgestellt, dass die folgenden tatsächlich funktioniert (Code ist von LeftViewController:viewDidLoad):
self.title = @"Long title for navigation controller";
self.navigationController.title = @"Short title";
Allerdings habe ich keine Ahnung, warum die Einstellung der navigationController.title setzt den Titel für die TabBarItem. Ich habe versucht "self.tabBarItem.title = @"Short title" stattdessen, und es funktioniert nicht, was noch seltsamer ist.
Kann mir jemand erklären, warum das funktioniert und wie ich die Titel direkt und richtig setzen kann, denn das sieht für mich wirklich nicht richtig aus, und ich habe das Gefühl, dass ich etwas Wichtiges übersehe. Ich danke euch! :)