Инициализируйте UIViewController, прежде чем элемент в панели поиска будет выбран - PullRequest
0 голосов
/ 02 октября 2011

У меня есть UITabBarController и SearchBar на главной странице.Панель поиска выполняет поиск элементов в базе данных и, когда элемент выбран, переходит к этому элементу на вкладке 2. Я изменил иерархию представления, чтобы использовать UINavigationController на этой вкладке.В моем viewDidLoad rootViewController для UINavigationController я выдвигаю первый viewController (из 3).Именно на этом viewController идет поиск элемента.

Если я захожу на эту вкладку только один раз, то загружается мой первый viewController, и я выбираю элемент поиска, и он работает.Проблема в том, что если я никогда не перехожу на эту вкладку и мой первый viewController не помещается в стек, то поиск не знает, куда идти, и происходит сбой.Я почти уверен, что NOT вызываю viewDidLoad из моей первой вкладки, чтобы убедиться, что первый ViewController помещен в стек.Как мне обойти эту проблему?Есть ли что-то, что я могу сделать в loadView?Спасибо.

1 Ответ

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

Вы правы, viewDidLoad - это метод делегата, который не должен вызываться вами. Один из подходов, которым вы можете следовать, - на вкладке 1 установить переменную экземпляра firstViewController на вкладке 2, что-то вроде pendingItemIndex, соответствующее элементу, который должен отображаться на вкладке 2.

Затем в viewDidLoad из firstViewController проверьте, имеет ли pendingItemIndex правильное значение (вы можете установить значение по умолчанию -1). Если это так, отобразите соответствующий элемент.

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