以编程方式更改ViewController的方向,而无需子类化UINavigationController

时间:2016-05-16 13:24:44

标签: ios objective-c iphone uiviewcontroller orientation

我正在编写一个包含UIViewController(和Storyboard)的模块,它可以被其他包装程序调用,所以我不能强制使用特定的UINavigationController的子类,但可以使用它按UINavigationController
在这种情况下,如何更改ViewController的方向?此外,只有一个UIViewController应该以编程方式更改方向 我尝试使用UINavigationControllerDelegate,但没有调用它。 (我尝试在initviewDidLoad上设置委托,但两个都没有工作)
没有其他方法可以解决这个问题吗? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

在ViewController的$context = stream_context_create(array( 'http' => array( 'header' => "Authorization: Basic " . base64_encode("$username:$password") ) )); $data = file_get_contents($url, false, $context); 方法中设置:

对于风景:

viewDidAppear

OR

肖像:

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

答案 1 :(得分:0)

UINavigationController并不重要。由于iOS 9(iPad)阻止了supportedInterfaceOrientationsshouldAutorotate,因此无法调用$("#timeToggler").on("click", function() { if($(".selectOption").is(":visible")) { $(".selectOption").hide(); } else $(".selectOption").show(); }).customSelect { position: relative; display: inline-block; cursor: pointer; border: 1px solid lightgrey; } .toggler { position:relative; z-index:1!important; width: auto; padding: 0 15px; background: #FFFFFF; color: #797979; display: inline-block; } .selectOption { position: absolute; z-index: 22!important; background: #FFFFFF; border: 1px solid lightgrey; margin-top: 1px; padding: 4px 0px; right:0px; left:0px; min-width:190px; } .padding15 { padding: 0 15px; }。我可以在(目标设置) - 常规 - 部署信息上检查需要全屏来解决此问题。

这是我发现的(细节)。 https://stackoverflow.com/a/33567990/1010443