PopToRootViewController на 3-м уровне, без попсовых элементов - PullRequest
1 голос
/ 01 ноября 2010

Я нажимаю на несколько контроллеров представления с помощью моего UINavigationController, и когда я нахожусь на своем третьем контроллере UISubViewController, я закодировал 'popToRootViewController' и его всплывающее окно назад, , но элементы панели навигации выдвигают во второе представление контроллер не до 1-го ..

  • Я пробовал с анимацией и без нее, но ничего не изменится.
  • Я пытался сказать, что self.navigationController.navigationBar выскочил назад, но на моем баре ничего не происходит.

Спасибо за помощь ..

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Я немного смущен вашим вопросом, но я думаю, что это должно помочь. Насколько я знаю, вы не можете иметь кнопку «назад» на UINavigationController вернуться более чем на 1 поп. Так что вы должны добавить еще одну кнопку, которая выполняет функцию popToRootViewController. Попробуйте что-то вроде этого:

UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(homeAction:)];

self.navigationItem.rightBarButtonItem = newButton;

Это добавит кнопку справа на вашем контроллере навигации. Следующим шагом является добавление функции с именем, которое вы называете в действии (в этом случае она должна называться «homeAction»). Это выглядит так:

-(IBAction)homeAction:(id)sender {
      [self.navigationController popToRootViewControllerAnimated:YES];
}

Это должно охватывать всплывающее окно обратно в корень контроллера, где бы вы ни находились в стеке. Вам также потребуется метод IBAction для вашего файла .h, но он должен делать все, что вы хотите.

0 голосов
/ 03 ноября 2010

, если вы не делаете что-то странное с массивом UIViewControllers NavigationController, метод должен быть:

[self.navigationController popToRootViewControllerAnimated:YES];
...