在解除模态UIViewController时旋转UISplitViewController

时间:2013-03-18 21:47:38

标签: objective-c ipad uisplitviewcontroller master-detail

我使用iOS 5 SDK创建了一个主细节应用程序,打算在设备为纵向时以模态方式显示UIViewController,在设备为横向时显示UISplitViewController。

使用以下内容旋转到横向时,模态VC将被解除:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)){
        [self dismissModalViewControllerAnimated:YES];
    }
}

但UISplitViewController永远不会获得旋转事件,因此在横向窗口中以纵向“模式”结束。

我尝试在DetailViewController中触发viewWillAppear中的旋转,如下所示:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
    if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
        [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
    }
}

,尝试调用SplitViewController的willRotateToInterfaceOrientation,并尝试从我的模态调用SplitViewController上的didRotateFromInterfaceOrientation但没有任何效果。

有什么想法吗?

0 个答案:

没有答案