Проблема с изменением стека контроллеров представления в UINavigationController - PullRequest
0 голосов
/ 19 августа 2011

Я создал простую демонстрацию навигации, которая имеет 5 контроллеров представления:

  • RootViewController (UITableViewController)
  • FirstViewController
  • SecondViewController
  • ThirdViewController
  • FourthViewController

1-3-й viewController имеет только кнопку для перехода к следующему контроллеру view с использованием [self.navigationController pushViewController: viewController],

В FourthViewController я пытаюсь изменить self.navigationController.viewControllers с помощью метода setViewControllers. Я просто поместил пустой UIViewController вместо некоторого viewController в стейк и заметил, что если я заменю на viewController ThirdViewController или FourthViewController, то все работает отлично, но когда я пытался заменить First или Second, кнопка возврата исчезает на текущем viewController, и я не могу его вернуть. Похоже, что можно изменять только текущий или предыдущий viewController с помощью setViewControllers. Может быть модификация предыдущих контроллеров представления повреждает стек?

Это содержимое массива self.navigationController.viewControllers, когда он работает идеально:

RootViewController: 0x6022890

FirstViewController: 0x4b26670

SecondViewController: 0x4b26b80

UIViewController: 0x4b33570

FourthViewController: 0x4e158d0

А это пример, когда кнопка возврата на FourthViewController исчезла:

RootViewController: 0x601f910

FirstViewController: 0x6200330

UIViewController: 0x4b237d0

ThirdViewController: 0x4b266e0

Контроллер FourthView: 0x4b23e30

Такая же ситуация произошла, если я попытался добавить пятый и шестой viewControllers - setViewControllers корректно работает только с пятым и шестым viewControllers в этом случае.

Заранее спасибо

...