我使用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
但没有任何效果。
有什么想法吗?