Сделайте ajax-запрос при программном переключении tabBarController viewContoller - PullRequest
0 голосов
/ 18 апреля 2011

Я читаю сообщения на форуме и бьюсь уже более 2 часов, и, надеюсь, кто-то может помочь мне направить меня в правильном направлении.

Я использую UITabBarController и у меня есть 4 корневых представления, связанных с ним,В первом виде пользователь может сделать снимок (UIImagePicker), после чего второй вид отображается программно.После отображения второго представления я хочу сделать ajax-запрос к серверу.

Я могу успешно выбрать / отобразить второе представление с помощью следующего кода:

self.tabBarController.selectedIndex = 1;

ОднакоМетод UITabBarControllerDelegate (который успешно вызывается пользователем tabBarContoller touch ):

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

не вызывается, так как Apple tabBarController: didSelectViewController документация состояния:

В версиях iOS до версии 3.0 этот метод вызывается только тогда, когда выбранный контроллер представления действительно изменяется.Другими словами, он не вызывается, когда выбран один и тот же контроллер представления.Кроме того, метод был вызван как для программных, так и для пользовательских изменений выбранного контроллера представления.

Поэтому мой вопрос: « Как выполнить некоторый код и сделать запрос послепрограммно переключиться на второе представление?"

Я также пытался вставить следы в:

-(void)viewDidAppear 
-(void)ViewWillAppear 
-(void)viewDidLoad

, но ни один из них не вызывается, когда установлен tabBarController.selectedIndex.

Большое спасибо

1 Ответ

1 голос
/ 18 апреля 2011

viewWillAppear должен быть вызван .. Я только что проверил.

Другое решение: используйте UITabBarControllerDelegate с

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

для отслеживания изменений.

...