Я пытаюсь создать приложение для iPhone с дополнительным навигационным контроллером верхнего уровня.
Его добавление в порядке, но попытка установить заголовок не работает, если вы не пытаетесь добавить свой собственный элемент навигации, после чего приложение вылетает с ошибкой «NSInternalInconsistencyException» по причине: «Невозможно вызвать pushNavigationItem:animated: непосредственно на UINavigationBar управляется контроллером.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
rootHasNavBar = NO;
if (window && viewController)
{
// Tab Controller is root:
if (!rootHasNavBar)
{
window.rootViewController = viewController; // viewController:UITabBarController
[window makeKeyAndVisible];
}
else
{
// Navigation controller above UITabBarController
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
window.rootViewController = navigationController;
//Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Cannot call pushNavigationItem:animated: directly on a UINavigationBar managed by a controller.'
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:NSLocalizedString(@"RentalPoint",nil)];
[ navigationController.navigationBar pushNavigationItem:item animated:YES];
navigationController.toolbarHidden = YES;
[window makeKeyAndVisible];
};
}
Как мне это сделать? Или есть какая-то техническая причина, по которой я не могу этого сделать?
Обновление: люди, которые предложили просто переместить назначение заголовка контроллера и заголовка элемента навигации в viewDidLoad контроллера, обращались к некоторым внутренним (и крайне неинтуитивным для новичка) аспектам архитектуры Cocoa, которые все еще были мне совершенно незнакомы. Если смотреть со стороны на такой огромный и сложный фреймворк, как Cocoa, который не позволяет вам просматривать исходный код, то это та тайна, которую я нахожу самой сложной. В других моих языках и инструментах я всегда могу прочитать и войти в код, включая мои фреймворки. здесь вы не можете, и поэтому вы должны читать, читать, читать, и, к счастью, есть МНОГО замечательных источников документации.