在我的应用程序中,根据视图控制器手动设置方向。除了该视图控制器之外,我还需要检测最顶视图控制器的当前方向(不是设备方向)。有可能吗?
这是我设置方向的方法。
-(BOOL)shouldAutorotate {
return YES;
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
答案 0 :(得分:0)
如前所述,您想检查根目录/最顶层VC中的当前方向设置。
因此您可以使用以下代码进行检测:-
if (topViewController.responds(to: Selector(("canRotate")))) else{
// view is set to portrait
return .portrait;
}
// // view is set to landscape
return .allButUpsideDown;
答案 1 :(得分:0)
您可以通过以下方式设置每个视图控制器的方向:
class YourViewController: UIViewController {
var _orientations = UIInterfaceOrientationMask.landscape
override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
get { return self._orientations }
set { self._orientations = newValue }
}
override func viewDidLoad() {
super.viewDidLoad()
}
//...
}
,然后在任何需要的地方读取此属性:
let vc = YourViewController()
print(vc._orientation)