[英]View Controllers in view Controller and orientation iOS
我有iPAD应用程序,该应用程序具有UIViewController A作为Navigation Controller的根视图Controller。 现在我还有3个视图控制器B,C,D作为ViewController A的子视图。
我希望B不响应方向,而C和D应该响应方向。
当前,所有代码都响应方向变化。
还有另一个答案,说制作两个单独的根ViewController并将它们添加到Windows View中。 其中一个不旋转,另一个不旋转。 我不能这样做,因为我在ViewController A中具有标头,该标头切换B,C,D使它们位于viewController的前面。
无论如何,请提出建议。
谢谢
您需要像这样子类化UINavigationController。
。H
#import <UIKit/UIKit.h>
@interface UINavigationController (Rotation)
- (BOOL)shouldAutorotate;
- (NSUInteger)supportedInterfaceOrientations;
@end
.M
#import "UINavigationController+Rotation.h"
@implementation UINavigationController (Rotation)
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
if ([self visibleViewController] && [[self visibleViewController] isKindOfClass:[B class]]) {
return UIInterfaceOrientationMaskAll;
}
return UIInterfaceOrientationMaskPortrait;
}
@end
您可以从UINavigationController创建子类或为其创建类别。 并实现此方法:
-(BOOL)shouldAutorotate
{
return [self.topViewController shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [self.topViewController preferredInterfaceOrientationForPresentation];
}
然后,在控制器中,您应该以所需的方向实现此方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.