我有一个简单的UIWebView嵌套在ViewController中,它以模态方式呈现在导航控制器上。
结构如下:TableViewController - > TableViewController - > Modal(WebView呈现) - >模态(选项,通过手势,页面卷曲呈现)
除了带有WebView的方向外,所有视图都处理所有方向,它通过配置处理其方向。
具有Web视图的控制器具有以下方向代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
BOOL orientationSwitch = NO;
if([self.webApp.orientationLandscape boolValue] &&
UIInterfaceOrientationIsLandscape(interfaceOrientation))
orientationSwitch = YES;
if([self.webApp.orientationPortrait boolValue] &&
UIInterfaceOrientationIsPortrait(interfaceOrientation))
orientationSwitch = YES;
return orientationSwitch;
}
现在的意图是,您可以设置一些选项,以确定视图是否应对方向更改做出反应。并且在大多数情况下它都有效,但是我有一个模态弹出窗口,您可以选择关闭包含Web视图的模式。一旦发生这种情况,似乎整个应用都锁定了方向。所有其他观点随后都不响应任何形式的轮换。
有什么想法吗?
由于
答案 0 :(得分:3)
这是尝试的东西。向UIDevice注册UIDeviceOrientationDidChangeNotification并告诉它开始生成通知。当收到通知时,请调用UIViewController类方法attemptRotationToDeviceOrientation
(仅限iOS 5)。
此处阅读此技术说明可能会有所帮助,因为您可能在这里做错了:https://developer.apple.com/library/ios/#qa/qa1688/_index.html
答案 1 :(得分:0)
首先,确保在项目设置中点击了正确支持的方向(目标 - > appname - >摘要)
我不知道为什么会这样,但我很久以前也遇到过类似的问题。那很久以前,ios 3.2还是什么的。我创建了一个只实现-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{}
的ViewRotatorController
方法。每个其他ViewControllers都继承了它。让你的webappview有另一个实现。它可能不是最好的解决方案,但应该可行。