Событие щелчка или касания элемента навигации иногда не запускается

В большинстве случаев элемент навигации на панели навигации работает нормально. Панель навигации скрывается до того, как пользователь коснется экрана.
Панель навигации перемещается с помощью [[self navigationContoller] setNavigationBarHidden:YES/NO animated:YES]

Однако иногда элемент навигации не срабатывает при касании внутри события.
Это фрагмент одного из них. .
[self.button addTarget:self action:@selector(someFunc) forControlEvents:UIControlEventTouchUpInside]

Анимация кнопок исчезает и появляется так же, как и при прикосновении, но событие не запускается.
Но когда я скрываю панель навигации и снова появляюсь, нажав экран, элементы навигации снова работают нормально.

В чем проблема? Понятия не имею.
Заранее спасибо за помощь.


person khcpietro    schedule 16.07.2015    source источник


Ответы (1)


Я решил эту проблему, используя UITapGestureRecognizer и UIImageView.
Я добавил как UIBarButtonItem по умолчанию, так и настроенный UIBarButtonItem, используя UIImageView и UITapGestureRecognizer, на панель навигации для проверки. Затем, когда я снова столкнулся с проблемой, UIBarButtonItem по умолчанию не отвечал, но настроенный UIBarButtonItem работал нормально.

Это мой пример кода.

UIImage buttonImage = [UIImage imageNamed:@"buttonImage" inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
UIImageView buttonImageView = [[UIImageView alloc] initWithImage:buttonImage];
UITapGestureRecognizer buttonTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(targetFunction)];
[buttonImageView addGestureRecognizer:buttonTapGesture];
UIBarButtonItem *bbiButton = [[UIBarButtonItem alloc] initWithCustomView:buttonImageView];

person khcpietro    schedule 31.07.2015