我正在制作iOS SDK,用于为客户的应用添加功能。我的SDK将在客户端应用程序的当前顶级视图上以模态方式呈现视图。我使用下面的代码片段以模态方式显示视图
sdkViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
[currentAppViewController presentViewController:sdkViewController animated:YES completion:nil];
在这里,我想将我的sdkViewController(和子视图)的方向修改为纵向模式
我试图实现这个
在 sdkViewController.m
内- (BOOL)shouldAutorotate {
return NO;
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}
但没有成功。经过disable autorotate on a single UIViewController in iOS6和类似的帖子后,几乎所有人都坚持继承 UINavigationController 并覆盖子类中的 shouldAutorotate 和 supportedInterfaceOrientations 。
我在第一个ViewController之前没有导航控制器,我只是在客户端应用程序的最顶层视图上以模态方式呈现我的sdkViewController。
经过数小时的谷歌搜索,我很高兴我尝试在 sdkViewController.m 中实现的三种方法都没用,因为这些方法在 rootViewController 中调用,不在任何childViewController里面。
请帮助我找到一种方法来修复在我没有法律的情况下以模态方式持续存在的视图方向。