Может ли кто-нибудь помочь мне распознать ответвление, когда пользователь нажимает заголовок в панели навигации в Objective-C?Признание касания заголовка в панели UINavigation
-3
A
ответ
2
Попробуйте следующее:
1) добавить кнопку в качестве заголовка зрения навигации
UIButton *titleLabelButton = [UIButton buttonWithType:UIButtonTypeCustom];
[titleLabelButton setTitle:@"myTitle" forState:UIControlStateNormal];
titleLabelButton.frame = CGRectMake(0, 0, 70, 44);
titleLabelButton.font = [UIFont boldSystemFontOfSize:16];
[titleLabelButton addTarget:self action:@selector(didTapTitleView:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.titleView = titleLabelButton;
2) Реализовать Selector
- (IBAction)didTapTitleView:(id) sender{
//Perform your actions
NSLog(@"Title tap");
}
1
Ну вы не можете напрямую иметь контакт событие на title
имущество UINavigationItem
от UINavigationBar
.
Существует свойство titleView
, которое вы можете установить и иметь событие касания на нем. Таким образом, вы можете сделать UILabel
и установить его на UINavigationItem
.
[self.navigationItem setTitleView:label];
Вы можете установить событие нажмите на эту label
.
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapTitle:)];
[label addGestureRecognizer:tap];
- (void)didTapTitle:(UILabel *)label {
//handle tap...
}
0
Вам нужно будет использовать пользовательский заголовок и добавить к нему распознаватель жестов.
Попробуйте это в viewDidLoad
:
UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(navTitleTapped)];
UILabel* navigationTitleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 500, 50)];
navigationTitleLabel.text = @"The title goes here...";
[navigationTitleLabel addGestureRecognizer:tap];
self.navigationItem.titleView = navigationTitleLabel;
Затем осуществить navTitleTapped
-(void)navTitleTapped
{
//do what you need to do
}
1
UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(hideKeyBoard)];
tapGesture.cancelsTouchesInView = NO;
[self.navigationController.view addGestureRecognizer:tapGesture];
-(void)hideKeyBoard
{
[self.view endEditing:YES];
}
Смежные вопросы
- 1. Захват касания заголовка панели навигации iPhone?
- 2. Значок настроек на панели uinavigation
- 3. Изменить положение панели инструментов UINavigation в iOS7?
- 4. Невозможно установить цвет в панели UINavigation - iOS
- 5. Как добавить кнопки панели в панель UINavigation
- 6. Настройка режима усечения текста заголовка UINavigation
- 7. Признание массива из файла заголовка файла сбой
- 8. Как добавить действие к кнопке панели UINAVigation
- 9. Контроллер UINavigation перед контроллером панели вкладок
- 10. Имея UINavigation в UISplitView
- 11. UINavigation
- 12. Как добавить две кнопки в представление заголовка строки UINavigation
- 13. Ограничение области касания в пункте панели навигации?
- 14. Segue от UINavigation Controller к другому контроллеру UINavigation
- 15. Создайте левый указатель UIBarButton в панели UINavigation Programmatically
- 16. Как установить размер содержимого в соответствии с размером панели UINavigation
- 17. Позиционирование в панели заголовка boostrap
- 18. UINavigation Bar tutorial
- 19. Текст заголовка панели Bootstrap
- 20. Изменение заголовка панели навигации
- 21. UITableView - сохранить заголовок заголовка раздела 0 от касания заголовка таблицы
- 22. Перемещение заголовка навигационной панели
- 23. Скрытие кнопки контроллера UINAVigation
- 24. Событие захвата сглаживания меню заголовка панели заголовка
- 25. Перекрытие панели заголовка и панели перекрытия sherlock
- 26. Проблема контроллера UINavigation
- 27. Заменить UINavigation на UIToolbar?
- 28. Как создать элементы поднабора панели инструментов UINAVigation Interface Builder?
- 29. Проблема с кнопкой на левой стороне панели uinavigation
- 30. Вложение UITabBar в контроллер UINavigation