iOS:初始界面方向在plist中被忽略
我试图将我的应用程序的初始方向设置为UIInterfaceOrientationLandscapeLeft
我不能得到
'Initial interface orientation'[UIInterfaceOrientation]
覆盖数组中的第一个项目
'Supported interface orientations'[UISupportedInterfaceOrientations]
我注意到一个iPhone应用程序总是以'肖像(底部主页button)'开头,数组是:
'Supported interface orientations'[UISupportedInterfaceOrientations] Portrait (bottom home button) Landscape (left home button) Landscape (right home button)
这是预期的。
如果在“摘要”页面上将“肖像主页底部”buttonclosures,则返回上一页,然后数组顺序改变,肖像(底部主页button)移动到底部。
Landscape (left home button) Landscape (right home button) Portrait (bottom home button)
当我运行的应用程序现在开始景观(左主页button),因为这现在是列表的顶部。 这很好
但
当我添加
'Initial interface orientation'[UIInterfaceOrientation]
并将其设置为
Landscape (right home button)
它被忽略,并使用数组中的第一个项目
Landscape (left home button)
我检查了shouldAutorotateToInterfaceOrientation,它只是阻止肖像颠倒
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } else { return YES; } }
我还添加了debugging代码
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if(interfaceOrientation == UIInterfaceOrientationPortrait){ NSLog(@"shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortrait"); }else if(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){ NSLog(@"shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortraitUpsideDown"); }else if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft){ NSLog(@"shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft"); }else if(interfaceOrientation == UIInterfaceOrientationLandscapeRight){ NSLog(@"shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight"); }else { NSLog(@"shouldAutorotateToInterfaceOrientation:UNKNOWN"); } return YES; }
我得到了
shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft
所以你可以看到它尝试使用
'Initial interface orientation'[UIInterfaceOrientation]
并将其设置为
Landscape (right home button)
但是然后它切换回数组中的第一个项目,而不是使用
Landscape (left home button)
难道我做错了什么? 这是一个简单的单视图Xcode模板项目…只需添加debugging代码。
尽pipe文档, UIInterfaceOrientation
被忽略。 只使用UISupportedInterfaceOrientations
。 要指定您希望启动哪一个,请使其成为UISupportedInterfaceOrientations
列出的第一个。
然后由您的个人视图控制器来排除他们拒绝采用的任何方向。
初始界面方向没有为我工作。 我只是改变了支持的界面方向的序列 ,它的工作。