2013-09-05 3 views
1

Я использую FlatUIKit в своем проекте. У меня есть пользовательская Назад кнопка, определенная как это:iOS: Пользовательская кнопка возврата не работает

[UIBarButtonItem configureFlatButtonsWithColor:[UIColor peterRiverColor] 
           highlightedColor:[UIColor belizeHoleColor] 
            cornerRadius:3 
           whenContainedIn:[UINavigationBar class], nil]; 

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                       style:UIBarButtonItemStylePlain 
                      target:self 
                      action:@selector(clickBack)]; 

А вот мой обзоре отзывы

-(void)clickBack{ 
[self.navigationController popToViewController:[self.navigationController.viewControllers  objectAtIndex:self.navigationController.viewControllers.count-1] animated:YES]; 

} 

кнопка появляется как я хочу, чтобы это, но это все. Если я нажму на него, ничего не произойдет.

Любая идея, что я сделал неправильно? Я довольно новичок в этом и никогда не заменил кнопку «Назад».

+2

'objectAtIndex: кол-1' собирается вернуть текущий контроллер представления, а не предыдущий. –

+1

Вы пытались установить контрольную точку внутри метода clickBack? ваш код достигает этой части? Или напишите NSLog там, чтобы увидеть, если печать ... – Emilio

+0

Спасибо Майку. Я попытался установить его на -2, но он разбил приложение. – user2747220

ответ

2

Вы только что упомянули в одном из своих комментариев, что вы представили контроллер вида по модулю, это другое. Вы хотите освободить контроллер модального представления. Попробуйте это:

[self dismissModalViewControllerAnimated:YES]; 

Метод поп-только собирается работать, если вид вы освобождаетесь толкнули на навигационном контроллере.

Вот ссылка на пример контроллера модального вида.

http://timneill.net/2010/09/modal-view-controller-example-part-1/

+0

Все, да, это работает сейчас. Дурак я. Огромное спасибо. – user2747220

1

использовать этот код в методе обзоре отзывов

[self.navigationController popViewControllerAnimated:YES]; 
+0

Спасибо, я попробовал это уже на самом деле, но он вообще не работает. – user2747220

+0

Похоже, на самом деле у вас нет предыдущего контроллера представлений. –

+0

Хорошо. Это потому, что я ввел новый контроллер представления в моду? Если я выберу push, приложение просто выйдет из строя. – user2747220

0
[UIBarButtonItem configureFlatButtonsWithColor:[UIColor peterRiverColor] 
           highlightedColor:[UIColor belizeHoleColor] 
            cornerRadius:3 
           whenContainedIn:[UINavigationBar class], nil]; 

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" 
                       style:UIBarButtonItemStylePlain 
                      target:self 
                      action:@selector(clickBack)]; 


-(void)clickBack 
{ 

[self.navigationController popToRootViewControllerAnimated:YES]; 

} 

скопировать и вставить этот код, как это.

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