UINavigationController, rootViewController с UITabBarController - PullRequest
1 голос
/ 01 октября 2011

У меня есть UITabBarController. Одна вкладка - это UINavigationController, где его rootViewController является подклассом UIViewController. В моем rootViewController, в моем viewDidLoad, я помещаю первый из трех ViewController. Основываясь на том, какой элемент UISegmentedControl нажат, я открываю старый вид и нажимаю viewController, который соответствует UISegmentedControl. Это работает по большей части.

Проблема в том, что если я в настоящее время нахожусь в иерархии навигации, если я снова нажимаю на ту же вкладку (вкладку, на которую уже смотрю), она выталкивает текущий ViewController из стека и возвращает к rootViewController. Я не уверен, почему это происходит. У меня есть только одно место, где я popViewController и я установил точку останова, и он никогда не вызывается. Поэтому я предполагаю, что когда я выбираю вкладку UITabBarController, когда я уже на этой вкладке, она возвращается к rootViewController. Это верно? Могу ли я что-нибудь сделать, чтобы решить эту проблему? Спасибо.

Ответы [ 2 ]

1 голос
/ 01 октября 2011

Да, это стандартное поведение, но вы можете предотвратить его, применив метод делегата панели вкладок shouldSelectViewController

Пример того, как это сделать, приведен здесь Запрет автоматического popToRootViewController при двойном касанииUITabBarController

0 голосов
/ 01 октября 2011

Функциональность, которую вы описываете, является стандартной для tabbarcontroller. Некоторые пользователи привыкли использовать его и могут расстроиться, если вы отключите его.

Однако это возможно с помощью функции делегата tabBarController: shouldSelectViewController. В этой функции вы можете проверить, совпадает ли желаемый выбор контроллера вида с уже отображенным. Если так, не позволяйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...