私はこの質問が何度も何度も尋ねられてきたことは知っていますが、私はそれをまったく動かすことができませんでしたが、文字通り答えがうまくいかなかったかもしれません。仕事はありません。とにかくiOS7 - タブバー内にある一部のView Controllerの向きをロックしますか?
、次のように自分のアプリケーションのビューコントローラのレイアウトがあり、これはタブ付きのアプリケーションであることに注意して、単一ビューアプリケーションではありません:複数のナビゲーションバーのコントローラに
マスタータブバーコントローラ>支店オフは(すべてを参照同じCustomNavigationControllerクラス)>各Nav Controllerの下にはいくつかのUIViewControllerがあり、そのうちのいくつかはカスタムView Controllerクラスを参照しています。は、どのように私は、しかし、は、いくつかのページ(UIViewControllers)にすることができ、ONLYポートレートモードに自分のアプリケーション内のすべてのページの向きをロックすることができます。私の質問がある
(階層の視覚的表現のための写真を参照)ユーザーがデバイスを回転させると、横に回転できますか? (上の画像の星印が付いたページは、私が回転を許可したいものです)
覚えておきたいビューコントローラは、ナビゲーションコントローラの子供です子をTab Bar Controllerに移動します。また、View Controllerの1つがNavigation Controllerの下にないことに注意してください。Tab ControllerはTab Bar Controllerの直下にあります。
は私のアプリ
タブバーコントローラコード(私が持っていたことがないよう、ここで意味のあるコードが存在しないことに注意の関連クラスからあなたに
コードそんなにありがとうこれのクラス)
@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, 5, 320, 563)];
} // End if
} // End if
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
でたぶん私は右のそれを実装していないのですが、私がやったことは、ビューコントローラへの参照を作成したUIViewControllerクラスにコードをコピーしただけで、「NO」が返されました。これは、そのビューコントローラの向きをロックしていない、私はまだデバイスの向きを回転させることができた。私はその後「はい」を返そうとしましたが、それも全く何もしませんでした。 どのようなアイデアですか? – n00bAppDev
このURLを一度参照してください:http://stackoverflow.com/questions/14174449/lock-the-orientation-of-viewcontroller – Ashutosh
そのスレッドで提供されている回答のコードをどのように使うべきか説明してください。私はそれを私のタブバーコントローラにコピーして何も起こらず、ビューコントローラにコピーするとエラーが返されました。 – n00bAppDev