Я хочу установить название свойство текущего navigationItem.backBarItem не относится к названию предыдущего вида. Поэтому я использую этот метод:Что не так с моим навигатором?
self.navigationController.navigationBar.topItem.backBarButtonItem=barButtonItem;
Но я обнаружил, что это не действует, как я ожидаю в некоторой ситуации.
ИСПОЛЬЗОВАНИЕ TOPITEM В VIEW B
ИСПОЛЬЗОВАНИЕ BACKITEM В VIEW B
И я обнаружил, что self.navigationController.navigationBar.items
(я думаю, что это стопка UINavigationItems) кажется неправильным.
С точки зрения А, поставленный self.navigationController.navigationBarHidden=YES;
в viewDidLoad
или viewWillAppear:
также приводит к по-разному.
Так что же случилось с моим кодом? Должен ли я явный доступ к self.navigationItem, чтобы принудительно его инициализировать (событие я не использую его напрямую)?
КОД: спасибо за ваше терпение
VIEW A:
-(void)viewWillAppear:(BOOL)animated{
self.navigationController.navigationBarHidden=YES;
}
VIEW B:
-(void)viewWillAppear:(BOOL)animated{
[email protected]"B";
self.navigationController.navigationBarHidden=NO;
UIBarButtonItem* buttonItem=[[UIBarButtonItem alloc]
initWithTitle:@"toA"
style:UIBarButtonItemStylePlain
target:self
action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem=buttonItem;
}
VIEW C:
-(void)viewWillAppear:(BOOL)animated{
[email protected]"C";
self.navigationController.navigationBarHidden=NO;
UIBarButtonItem* buttonItem=[[UIBarButtonItem alloc]
initWithTitle:@"toB"
style:UIBarButtonItemStylePlain
target:self
action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem=buttonItem;
}
Не правильно. 'self.navigationItem' установит _backBarButton_ of ** next ** view, а не текущий. Это означает, что с точки зрения B он будет отображать ** назад **, и в виду C он покажет ** toA **. Проверено. – Tepmnthar
Спасибо. Испытали отредактированную версию, тоже не работали ... Я что-то пропустил? – Tepmnthar
В каждом представлении управления сначала вам нужно написать self.navigationController.navigationItem.hidesBackButton = YES; then –