我在我的应用中面向视图方向的问题。
像
我有两个视图控制器,VC1和VC2
VC1已修复横向方向。 VC2都有
VC1 - > VC2很好。表示当我从VC1转到VC2时,VC2会在横向和纵向中更改其方向。
但是当我从VC2(纵向模式下的VC2)回归到VC1时,VC1也处于纵向模式,但我想VC1仅处于横向模式而与VC2模式无关。
请伙计们帮助我。寻求最近2天的解决方案。 提前谢谢。
答案 0 :(得分:0)
请参阅以下链接以获取解决方案
http://swiftiostutorials.com/ios-orientations-landscape-orientation-one-view-controller/
在你的VC1 ..
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft;
}
希望它对你有所帮助......
答案 1 :(得分:0)
首先,在AppDelegate.m
中写一下while :
do
echo "in loop"
sleep 60 &
while ! wait $!
do
continue
done
done
然后,对于VC1,在横向方向,请写下:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return (UIInterfaceOrientationMaskAll);
}
对于同时具有这两者的VC2,将屏蔽更改为全部。
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskPortrait);
}
答案 2 :(得分:0)
基本上iOS应用程序中基于视图控制器的方向支持是小菜一碟 - 我在 Swift 中完成了代码,但 ObjC 概念完全相同对此。
我已经使用UINavigationController
创建了一个快速教程,但您可以通过保留概念但稍微更新环境将其转换为UITabBarController
。
最初为您的应用设置方向支持,如下所示:
创建一个简单的基于UINavigationController
的故事板,如下所示:
注意: 如果最初没有说OrientaionSupporterController
,请不要担心(如果你发现了import UIKit
// MARK: - Implementation
class OrientaionSupporterController: UINavigationController {
// MARK: - Active View Controller
private var activeViewController: UIViewController? {
get {
return self.presentedViewController ?? self.topViewController // for possible modal support
}
}
// MARK: - Orientations
override var shouldAutorotate: Bool {
get {
return self.activeViewController?.shouldAutorotate ?? true // yes, rotate it, please
}
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return self.activeViewController?.supportedInterfaceOrientations ?? .all // default is all possible orientations
}
}
这里一致错字!),我将在下一步中介绍它。
创建导航控制器的子集,如下所示:
import UIKit
// MARK: - Implementation
class ViewController: UIViewController {
// MARK: - Orientation
override var shouldAutorotate: Bool {
get {
return true
}
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return [.portrait, .landscapeLeft] // no one find that preactical but works flawlessly
}
}
然后确保它也成为IB中的基类:
创建具有自定义方向支持的各个视图控制器,例如只有肖像和横向左支持:
UITabBarController
注意: 您可以随时使用selectedViewController
转换本教程,您只需(显然)创建标签栏的子集 - 控制器并使用UIWindow
获取当前可见的。
注意#2: 显然,您可以通过这种方式更进一步,您可以在视图层次结构中嵌套自定义导航控制器,或者如果您在队列中有多个Laravel Framework 5.5.26
实例,并覆盖每个窗口中支持的方向(例如,一些支持所有四个方向,而一些其他窗口仅用于例如视频播放,等等...)
答案 3 :(得分:0)
<强> 1。启用项目的所有方向支持。
对于VC1添加此行VC1Controller类
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
对于VC2在VC2Controller类中添加它
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}