UINavigationBar пользовательский вид заголовка на втором уровне
Я пытался вставить пользовательскую кнопку в центре UINavigationBar (в titleView). Это все еще работает на первом уровне, но когда я выбираю в этом TableView одну ячейку и перемещаюсь к следующему контроллеру, я не могу вставить эту кнопку также на второй контроллер. Показаны Right- и LeftBarButtonItem, но не titleView.
Когда я работаю с настройками по умолчанию и использую viewController.title, он отображается в titleView этой панели навигации, но мой пользовательский вид не отображается.
Мой код в обоих контроллерах
UIButton *centerNavigationButton = [UIButton buttonWithType:UIButtonTypeCustom];
[centerNavigationButton setBackgroundImage:[UIImage imageNamed: @"buttonImage.png"] forState:UIControlStateNormal];
centerNavigationButton.frame = (CGRect) {
.size.width = 100,
.size.height = 20,
};
[centerNavigationButton addTarget:self action:@selector(scrollToTop) forControlEvents:UIControlEventTouchUpInside];
[self.navigationController.navigationBar.topItem setTitleView:centerNavigationButton];
Я искал это более одного дня, но нигде не нашел эту проблему для второго уровня.
Спасибо за вашу помощь.
Редактировать:
Решение найдено @Martin R в первом TableViewController, который я должен написать
UIButton *centerNavigationButton = [UIButton buttonWithType:UIButtonTypeCustom];
[centerNavigationButton setBackgroundImage:[UIImage imageNamed: @"buttonImage.png"] forState:UIControlStateNormal];
centerNavigationButton.frame = (CGRect) {
.size.width = 100,
.size.height = 20,
};
[centerNavigationButton addTarget:self action:@selector(scrollToTop) forControlEvents:UIControlEventTouchUpInside];
[self.navigationController.navigationBar.topItem setTitleView:centerNavigationButton];
На втором уровне:
UIButton *centerNavigationButton = [UIButton buttonWithType:UIButtonTypeCustom];
[centerNavigationButton setBackgroundImage:[UIImage imageNamed: @"buttonImage.png"] forState:UIControlStateNormal];
centerNavigationButton.frame = (CGRect) {
.size.width = 100,
.size.height = 20,
};
[centerNavigationButton addTarget:self action:@selector(scrollToTop) forControlEvents:UIControlEventTouchUpInside];
[self.navigationItem setTitleView:centerNavigationButton];
Вопрос можно закрыть.
Большое спасибо! 25 минут с момента написания вопроса, чтобы найти решение! Прекрасное время!
1 ответ
Я думаю, что вы должны установить titleView
вид контроллера navigationItem
:
self.navigationItem.titleView = centerNavigationButton;