2013-04-26 1 views
-1

Я скрыл панель навигации, поэтому я могу создать пользовательский UIToolBar, но когда я установил свойство action для элемента панели инструментов методу, который его всплывает, это не сработает, и я думаю, что это может быть потому, что Я спрятал навигационную панель.Контроллер с открытым представлением из стека без отображаемой панели навигации?

Вот мой код:

[toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Articles" style:UIBarButtonItemStyleBordered target:nil action:@selector(backButtonTapped)]]; 

...

- (void)backButtonTapped { 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

Но ничего не происходит.

+0

Что вы понимаете, спрятав панель навигации? Проверьте и проверьте, нет ли контроллера навигации nil – JeffN

+0

[self.navigationController setNavigationBarHidden: YES animated: NO]; –

+0

И нет, это не ноль. –

ответ

0

У меня был UITapGestureRecognizer на весь вид, который перехватил кран на UIBarButton. Я решил это благодаря this answer, который в основном остановил UITapGestureRecognizer с самого начала, если он не был за пределами UIToolBar.

3

Цель вашего селектора - это ничто, когда оно должно быть само собой, и вам нужно указать параметр отправителя в свой метод действия!

[toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Articles" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonTapped:)]]; 

-(void) backButtonTapped: (id) sender { 
    //code as before here 
} 

редактировать Как @sulthan отметил, параметр отправителя не нужен! Вы можете оставить это, как и раньше!

+0

Это ничего не меняло. –

+0

Пожалуйста, добавьте точку останова в метод popViewcontrollerAnimated: и сообщите нам, если она нажата, когда вы нажимаете кнопку – Mario

+0

. Она не вызывается. –

Смежные вопросы