什麼是傳播shouldAutorotate
到iOS6的到shouldAutorotate傳播陷入了深深的情態視圖 - 控制在iOS6的
modal viewcontroller
請看下面的例子中,正確的方法:
- 在創建一個新的樣本
Tabbed Application
的XCode 4.5 - 在
Summary
,選擇所有方向 創建一個新的簡單的
UITabBarController
,例如MyTabBarViewController
並添加代碼- (BOOL)shouldAutorotate { return YES; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll; }
在AppDelegate中,以掛鉤旋轉
self.tabBarController = [[MyTabBarViewController alloc] init];
現在轉動應該工作更換
UITabBarController
由MyTabBarViewController
,並在FirstViewController
,添加代碼在點擊時顯示模態視圖控制器-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UIViewController * viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil]; [self presentViewController: [[UINavigationController alloc] initWithRootViewController:viewController2] animated:YES completion:nil]; }
問題:
現在由於SecondViewController
由UINavigationController
包裹着,連我都在SecondViewController添加shouldAutorotate
,不能讓倒掛旋轉做的權利。
唯一的修復方法是創建自定義UINavigationController
並執行shouldAutorotate
並且這應該起作用。
但這種方法聽起來很蠢,它要求我通過實施shouldAutorotate
解決所有UI類,我不能使用的速記如[UINavigationController alloc] initWithRootViewController...
了,我必須實現所有這些UITabBarController
和UINavigationController
。
有沒有更好的方法?