容器的ViewController与iPad应用程序上的单个自定义ViewController
||
我正在将现有的iPhone应用程序转换为iPad应用程序。 iPhone应用程序是使用容器视图控制器(UINavigationController)构建的,该容器首先向用户提供了一个自定义视图控制器(UITableViewController),该视图控制器根据行选择推送了一个自定义视图控制器(UIViewController)。
在iPad应用程序中,我直接向用户展示自定义UIViewController(带有NO容器控制器),然后允许通过UIPopoverController选择不同的选项。在myAppDelegate.m中,我只是使用以下方法将自定义UIViewController添加到窗口中:
[window addSubview:[myCustomViewController view]];
在myCustomViewController.m中,我通过在viewWillAppear中注册方向更改通知来根据设备旋转程度严重修改视图:
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:) name:@\"UIDeviceOrientationDidChangeNotification\" object:nil];
}
然后,我在didRotate:方法中测试方向,并得到非常奇怪的结果。只是加载视图就被调用了三次吗?它似乎也正在报告与视图的上一图相对应的方向?
- (void) didRotate:(NSNotification *)notification
{
if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {
NSLog(@\"Portrait\");
} else if (self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft || self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
NSLog(@\"Landscape\");
}
}
我在阅读文档,似乎将子视图添加到窗口(没有容器类)不会导致viewWillAppear:方法被调用,但就我而言,它似乎正在被调用,只是不可靠。
我应该为此应用程序使用其他模式吗?我只是想加载一个自定义视图并使用两个弹出框控制器(没有其他导航)?
-德里克
btw-如果我将自定义viewController推送到我的应用程序委托中的UINavigationController上,它将完全正常工作。我只是不需要此应用程序的导航控制器。
没有找到相关结果
已邀请:
1 个回复
雇砰
然后,您可以使用以下视图委托方法。
} 希望这可以帮助。