iPHone - обнаружить методы делегирования UITabBarController? - PullRequest
0 голосов
/ 29 апреля 2011

Я хочу получать уведомление, когда UITabbarViewController полностью загружен и отображается на экране?

Поскольку он наследуется от UIViewController, я попытался установить делегат для моего appdelegate и реализовал viewDidAppear, но он никогда не вызывается.

Любое решение ??

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
   self.tabbar.delegate = self;
   //other stuff
}

- (void)viewDidAppear:(BOOL)animated
{
    NSLog(@"asdasd");
}

Ответы [ 3 ]

0 голосов
/ 29 апреля 2011

Когда вы устанавливаете делегат UITabBarController, вы сможете переопределять только методы UITabBarControllerDelegate, но не методы UITabBarController.

Решение: A

Создание UITabBarController из кода

Решение: B

Подкласс UITabBarController

Для обоих решений вы можете сделатькод в viewDidLoad или отправьте NSNotification с информацией о том, что представление полностью загружено.

0 голосов
/ 29 апреля 2011

Используйте UITabBarController's viewDidAppear, унаследованный от UIViewController.Контроллер отвечает за жизненный цикл представления, а не делегат.

0 голосов
/ 29 апреля 2011

Не думаю, что это очень элегантное решение, но вы можете опубликовать уведомление с помощью NSNotificationCenter

[[NSNotificationCenter defaultCenter] postNotificationName:myNotification object:self];

и ответить на него следующим образом:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dosomething:) name:myNotification object:nil];
...