Я боролся с этой проблемой в течение нескольких дней. Я пытаюсь иметь постоянный RightBarButtonItem
в нескольких представлениях. Изучив несколько блогов и веб-поисков, выяснилось, что мне нужно установить rightBarButtonItem
в функции -navigationController:willShowViewController:animated:
.Не входя в функцию -navigationController: willShowViewController: animated:
Мое приложение не показывает ошибок, но когда я пытаюсь отлаживать или использовать операторы NSLog
, это показывает, что приложение вообще не вводит эту функцию. У меня есть <UINavigationControllerDelegate>
в интерфейсе моего класса RootViewController
, но я также установил свой парсер NSXMLParser
в качестве делегата для себя ([parser setDelegate:self];
) в другом классе. Может ли это быть проблемой, что делегат navigationController
не распознан или что-то в этом роде.
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
{
//[self.navigationController.navigationItem setRightBarButtonItem:twoButtons animated:YES];
self.navigationItem.rightBarButtonItem = twoButtons;
NSLog(@"We are in navigationController delegate function");
}
Не могли бы вы вставить код, в котором вы устанавливаете делегат 'navigationController'? – dasblinkenlight
Возможно, это не способ записи, но это то, что я делаю: [self.navigationController setDelegate: self]; и в этом случае navigationController входит в функцию navigationController: willShowViewController: анимированный: но он не устанавливает мой rightBarButtonItem для любого представления. – Lily
Убедитесь, что в этот момент ваш навигационный контроллер не ноль ... – Peres