Цель C: Как представить модальный контроллер вида из appdelegate? - PullRequest
7 голосов
/ 15 августа 2011

Я нахожусь в приложении моей заявки. Как добавить контроллер модального представления в методе didfinishlaunching?

Я попробовал следующее, но не сработало

SomeViewController *vc = [[SomeViewController alloc]init];
[self.tabController.navigationController presentModalViewController:vc animated:NO]; 

EDIT: Я изменил свою реализацию на следующий

self.tabController.selectedViewController 
= [self.tabController.viewControllers objectAtIndex:0];
SomeViewController *vc = [[SomeViewController alloc]init];
[self.tabController.selectedViewController presentModalViewController:vc animated:NO];

Я проверил, что «выбранный контроллер представления» не равен нулю ... однако я все еще не могу получить нужный вывод. Я что-то пропустил?

1 Ответ

19 голосов
/ 15 августа 2011

Если предположить, что tabController и navigationController не равны nil, applicationDidFinishLaunching может быть слишком рано для отображения контроллера модального представления.

  1. Убедитесь, что этот код введен после того, как вы сделали клавишу окна и видимой.[self.window makeKeyAndVisible];
  2. Если это не сработает, попробуйте прослушать UIWindowDidBecomeKeyNotification для этого окна
  3. Вы можете попробовать отложить представление этого модала на несколько секунд, используя executeSelector: withObject: afterDelay:
...