viewDidAppear не запускается в Tabbarcontroller> NavigationController> UITableView - PullRequest
1 голос
/ 30 октября 2009

В настоящее время у меня есть контроллер панели вкладок, настроенный с помощью контроллера навигации на одной из вкладок, затем у меня есть перо UITableView, настроенное для этого представления Navigationcontrollers. Все это было настроено через IB, и я хочу, чтобы это продолжалось. Вроде как этот урок http://twilloapp.blogspot.com/2009/05/how-to-embed-navigation-controller.html теперь представление загружается идеально, когда вызывается ViewDidLoad. Но когда я тогда загружаю дальнейшие представления через код IE

MyApp_AppDelegate *delegate = [[UIApplication sharedApplication] delegate];

UINavigationController *nav = (UINavigationController *)delegate.controller.selectedViewController;

newViewController = [[newViewController alloc] initWithNibName:@"newView" bundle:nil];

[nav pushViewController:newViewController animated:YES];

//At this point the view works! and loads

Если я попытаюсь вернуться с панелью инструментов навигации, то вернется к моему предыдущему виду. Теперь мне нужно обновить представление таблицы, когда я вернусь, но вызов viewDidAppear не работает.

Я попытался добавить UINavigationDelegate к тому же ViewController классу, что и в табличном представлении, а затем вызвать - (void)navigationController:(UINavigationController *)navigationController didShowViewController:

Но это не сработало. Я также попытался добавить тот же делегат, что и контроллер панели вкладок, и добавить туда тот же navigationController didShowViewController:, но это также не удалось.

Как заставить эту таблицу обновляться каждый раз при загрузке представления?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2009

Обнаружено, что в файле интерфейса отсутствует декларация о делегате DOH! также я пробовал, чтобы во многих местах он работал только при добавлении его в первое представление NavigationControllers (мое табличное представление)

0 голосов
/ 30 октября 2009

Вам не нужно звонить viewDidAppear из вашего кода. Какао Touch должен сделать это для вас.

Вызвать метод табличного представления reloadData, чтобы он обновил его содержимое.

...