Я хотел бы запустить событие в касание, когда пользователь касается заголовка панели навигации одного из моих представлений.
Я в чем-то вроде потери на том, могу ли я получить доступ к представлению заголовка UINavigationBar для обеспечения электричеством сенсорного события к нему.
Это даже возможно?
Решение, которое я нашел, - это кнопка, я использую следующее (но я не знаю, как «законно» есть):
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;
поставить этот бит кода, когда когда-либо вы устанавливаете заглавие. Тогда в другом месте у меня было это, чтобы проверить:
- (IBAction)didTapTitleView:(id) sender
{
NSLog(@"Title tap");
}
, который зарегистрировал «Title Tap» на консоли!
То, как я пошел об этом, может быть совершенно неправильным, но может дать вам представление о том, что вы можете посмотреть. Это, безусловно, помогло мне! Там, вероятно, лучший способ сделать это, хотя.
Справка класса
имеет свойство
Справка класса SilverView
, которое вы можете установить на заказ UIView
.
Другими словами, сделайте подкласс UIView
со своими прикосновенными обработчиками, а затем, когда вы нажимаете свой навигационный элемент, установите свой элемент SilverView
свойство для экземпляра вашего подкласса.