
无论如何,我的应用程序的视图控制器布局如下,请注意这是一个选项卡式应用程序,而不是一个VIEw应用程序:
主标签栏控制器>分支到多个导航栏控制器(都引用相同的CustomNavigationController类)>在每个Nav Controller下都有许多UIVIEwControllers,其中一些引用自定义视图控制器类. (有关层次结构的直观表示,请参见pic)
我的问题是:如何才能将应用程序中所有页面的方向锁定为纵向模式,但是如果用户旋转设备,允许某些页面(UIVIEwControllers)能够旋转到横向? (上图中标有星号的页面是我想要允许旋转的页面)
请记住,我想允许旋转的视图控制器是导航控制器的子控制器,导航控制器也是标签栏控制器的子控制器.另外,请注意其中一个VIEw控制器不在Navigation控制器下,它位于Tab bar控制器下,但不确定这会影响多少.
非常感谢
来自我的应用程序的相关类的代码
标签栏控制器代码(注意这里没有有意义的代码,因为我从来没有用过这个类)
@interface TabbarController ()@end@implementation TabbarController- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; // Do any additional setup after loading the vIEw.}- (voID)dIDReceiveMemoryWarning { [super dIDReceiveMemoryWarning]; // dispose of any resources that can be recreated.} @end 导航控制器类(也从来没有一个类
@interface Navigationbar ()@end @implementation Navigationbar- (ID)initWithNibname:(Nsstring *)nibnameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibname:nibnameOrNil bundle:nibBundleOrNil]; if (self) { self.Title = @"NavigationController"; } return self;}- (voID)dIDReceiveMemoryWarning { [super dIDReceiveMemoryWarning]; // dispose of any resources that can be recreated.}@end 主页类(必须以肖像锁定)
@interface HomePage ()@end@implementation HomePage- (ID)initWithNibname:(Nsstring *)nibnameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibname:nibnameOrNil bundle:nibBundleOrNil]; if (self) { self.Title = @"HomePage"; } return self;}- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; // If the condition is not true/not YES,than create and show alert. if (![[NSUserDefaults standardUserDefaults] boolForKey:@"dIDShowOneTimeAlert"]) { //define and Edit the Alert details. UIAlertVIEw *zoomTip = [[UIAlertVIEw alloc] initWithTitle:@"Tips" message:@"On all web site and map pages,pinch in and out to zoom. \n \n On the 'Program' page,tap on a session to vIEw more details." delegate:self cancelbuttonTitle:@"Okay" otherbuttonTitles:nil]; //Show the alert [zoomTip show]; [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"dIDShowOneTimeAlert"]; [[NSUserDefaults standardUserDefaults] synchronize]; } // End if}- (voID)dIDReceiveMemoryWarning { [super dIDReceiveMemoryWarning]; // dispose of any resources that can be recreated.}@end 地图类(显示地图并且必须能够旋转的页面)
@interface mezzanineLevelMap ()@end@implementation mezzanineLevelMap@synthesize scrollVIEw,imageVIEw;-(UIVIEw *)vIEwForZoomingInScrollVIEw:(UIScrollVIEw *)scrollVIEw { return imageVIEw;}- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; UIImageVIEw *tempImageVIEw = [[UIImageVIEw alloc] initWithImage:[UIImage imagenamed:@"mezzanine Level"]]; self.imageVIEw = tempImageVIEw; scrollVIEw.maximumZoomScale = 1; scrollVIEw.minimumZoomScale = .25; scrollVIEw.clipsToBounds = YES; scrollVIEw.delegate = self; [scrollVIEw addSubvIEw:imageVIEw]; scrollVIEw.zoomScale = .25; // Change scroll vIEw sizes according to the screen size if (UI_USER_INTERFACE_IdioM() == UIUserInterfaceIdiomPhone) { CGSize result = [[UIScreen mainScreen] bounds].size; if (result.height == 480) { [scrollVIEw setFrame:CGRectMake(0,5,320,475)]; } else { [scrollVIEw setFrame:CGRectMake(0,563)]; } // End if } // End if}- (voID)dIDReceiveMemoryWarning { [super dIDReceiveMemoryWarning]; // dispose of any resources that can be recreated.}@end解决方法 只需在视图控制器(iOS 6)中实现以下功能: - (BOol)shouldautorotate { return NO;} 总结 以上是内存溢出为你收集整理的iOS7 – 仅锁定标签栏内的某些视图控制器的方向?全部内容,希望文章能够帮你解决iOS7 – 仅锁定标签栏内的某些视图控制器的方向?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)