В настоящее время я изучаю разработку для iOS, и меня смущает, как названия устанавливаются внутри.
У меня есть следующий код в оконном шаблоне для iPad, и я делаю все с нуля без 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;
}
Я хочу иметь собственный короткий заголовок для TabBarItem для LeftViewController и длинный заголовок для панели NavigationController сверху. После нескольких попыток я заметил, что на самом деле работает следующее (код взят из LeftViewController: viewDidLoad):
self.title = @"Long title for navigation controller";
self.navigationController.title = @"Short title";
Тем не менее, я понятия не имею, почему установка navigationController.title устанавливает заголовок для TabBarItem. Вместо этого я попробовал "self.tabBarItem.title = @" Short title ", и он не работает, что еще более странно.
Может кто-нибудь объяснить, почему это работает, и как я могу установить заголовки напрямую и правильно, потому что это действительно не подходит мне, и я чувствую, что упускаю что-то важное. Спасибо! :)