2009-07-14 2 views
1

У меня есть следующий вопрос:Панель вкладок контроллер

В моем проекте у меня есть следующий:

UITabBarController

....Some UINAvigationControllers.... 

*(1) UINavigationController 

     UIViewController (UItableView) - When select one row it goes to...(by push) 

        UIViewController (UItableView) 

Моя проблема, когда я нажимаю в пункте панели вкладок, я вижу viewController view, как в прошлый раз, когда я увидел это, и не перезагружаю сначала * (1) в другой раз.

Где мне нужно писать sth для каждого раза, когда я нажимаю элемент панели вкладок, я перезагружаю первый вид этого элемента панели вкладок.

Спасибо!

ответ

0

Попробуйте поместить свой код обратного вызова, чтобы перезагрузить представление в методах viewWillAppear или viewDidAppear. Они вызываются каждый раз, когда контроллер вида отображает его вид на экране.

Также вы можете скопировать и вставить реальный код, как правило, делает вещи проще с нашей стороны :)

2

Если я правильно понимаю ваш вопрос, вы пытаетесь вернуть навигационный контроллер корневого элемента, когда он элемент панели табуляции.

Чтобы сделать это, установите для объекта UITabBarController некоторый объект (например, делегат приложения, но он может быть каким-то другим объектом). (Если вы используете делегат приложения, он будет делегатом для более чем одной вещи, что хорошо.) Затем примените метод tabBarController:didSelectViewController:. В этом методе сообщите выбранному контроллеру вида (который должен быть NavigationController), чтобы вернуться в контроллер корневого представления.

Нечто подобное. Добавить эту реализацию в класс AppDelegate.m:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    [viewController popToRootViewControllerAnimated:NO]; 
} 

В файле .xib, установить делегат для TabBarController к в AppDelegate. (Если вы программно создаете tabBar, вам придется делать это программно там.)

Как вы подозревали, пытаясь сделать это в методе viewWillAppear или в любом другом виде контроллера вида, который живет в навигации контроллер не является правильным. Это метод, выполняемый на контроллере навигации, и обнаруженный делегатом панели вкладок.

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