Как показать контроллер представления при загрузке приложения, используя tabbarcontroller - PullRequest
4 голосов
/ 05 ноября 2011

Я использую tabbarcontroller в качестве контроллера корневого представления.К сожалению, используя новую функциональность раскадровки, трудно загрузить контроллер представления - страницу входа - при загрузке приложения.

Я использую следующий код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

    [tabBarController performSegueWithIdentifier:@"loginPage" sender:self];

Переход настроен правильно.Я вошел в один из контроллеров представления вкладок и сделал IBAction, и он успешно вышел.Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 24 ноября 2011

столкнулся с этой же проблемой сегодня.Мне пришлось позвонить:

[self.window makeKeyAndVisible];

до

[self.window.rootViewController performSegueWithIdentifier:@"LoginView" sender:self];

Так что я предполагаю, что при использовании раскадровок makeKeyAndVisible происходит после didFinishLaunchinWithOptions: возвращается.Так что, когда вызывали segue, это происходит на экране, а не на экране.

1 голос
/ 25 ноября 2014

Я недавно столкнулся с той же проблемой. Однако предоставленное решение не сработало для меня.

Причина была в том, что я использовал «push» segue для отображения моего контроллера вида входа в систему (который был встроен в контроллер навигации). Смена стиля перехода с «push» на «modal» сделала мой трюк. По-видимому, невозможно инициировать переход «push» из контроллера панели вкладок, но только из контроллера навигации.

Кроме того, я не поставил строку

[self performSegueWithIdentifier:@"LoginSegue sender:self];

в методе didFinishLaunchingWithOptions:didFinishLaunchingWithOptions: делегата приложения, а точнее в методе viewDidAppear:. Для этого мне не понадобилась следующая строка кода:

[self.window makeKeyAndVisible];

Надеюсь, что это полезно для других.

...