Переключение представления путем изменения делегата rootViewContoller - PullRequest
1 голос
/ 05 января 2012

В настоящее время я пытаюсь переключить представление с UIViewController на SplitViewController.В настоящее время я делаю это в моем UIViewController:

AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

[UIView transitionWithView:delegate.window duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    delegate.window.rootViewController = delegate.splitViewController;
} completion:nil];

[self.view removeFromSuperview];

Это правильный способ для переключения просмотра?Если да, у меня все еще есть проблема, чтобы решить с этим методом.Сначала он быстро показывает MasterView в портретном режиме, а затем показывает весь разделенный вид в текущем режиме ориентации iPad.

Надеюсь, я достаточно ясно.

Спасибо за помощь.

1 Ответ

1 голос
/ 14 февраля 2012

Я нашел способ заставить его работать из этого потока:

Переход анимации RootViewController, неправильная начальная ориентация

AppDelegate *delegate =(AppDelegate *)[[UIApplication sharedApplication] delegate];
[UIView transitionWithView:self.window duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
    BOOL oldState = [UIView areAnimationsEnabled];
    [UIView setAnimationsEnabled:NO];
    delegate.window.rootViewController = self.splitViewController;
    [UIView setAnimationsEnabled:oldState];
 } 
 completion:nil];
...