2013-02-11 3 views
1

Я выхожу на нужный диспетчер представлений, но uinavigationbar и uinavigationitem не отображают правильное имя, и я должен нажать кнопку «Назад» (uinavigationitem), чтобы см. правое имя на панели навигации.My uinavigationbar не отображает имя правильного uinavigationcontroller

Я использую

 YTOCalculatorViewController * parent = (YTOCalculatorViewController *)self.controller; 
    [self.navigationController popToViewController:parent animated:YES]; 

для того, чтобы отобразить YTOCalculatorViewController. Я поместил этот код в viewwilldisappear из viewcontroller, откуда я хочу перейти в YTOCalculatorViewController, но, несмотря на то, что он появляется в правильном диспетчере представлений, на панели навигации отображается неправильное имя и после нажатия кнопки «Назад» отображается правильное имя.

К примеру у меня в стеке C В

В этом случае А YTOCalculatorViewController. Когда отображается C, я сохраняю эту информацию, и я хочу снова отобразить A, чтобы использовать приведенный выше код.

И если я перехожу из A в C, а затем обратно в C в A несколько раз x, то, когда я прихожу в A, мне нужно нажать x раз на кнопку «Назад», чтобы увидеть имя правильного uinavigationbar , который принадлежит A. Панель uinavigationbar отображает имя B viewcontroller, вместо указания имени A.

Извините, если я не был достаточно ясным, надеюсь, вы понимаете мою проблему.

ответ

0

кажется, что вы пытаетесь поп от себя к себе ..

Если вы хотите, чтобы выскочить в какой-то определенный контроллер, который уже толкаемом .. Скажем, вы толкнули A-> B-> C-> D, вы в настоящее время на D и хотите popto B, вы должны сделать следующее

for(UIViewController *controller in [self.navigationController viewControllers]){ 
    if([controller isKindOfClass:[B class]]){ 
     [self.navigationController popToViewController:controller animated:YES]; 
     break; 
    } 

} 

выше должен хорошо работать .. код выше может не быть синтаксически правильно, пожалуйста, поправьте если так.

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