我有一個UINavigationController
,它創建了一個UIViewController
的實例,並將另一個UIViewController
設置爲根。然後我介紹導航控制器,一切正常。在iOS7中禁用UINavigationController的旋轉
用戶旋轉設備時出現問題。我所有的控制器(包括根和不包括UINavigationController
)都執行shouldAutorotate
並返回FALSE
。
不知何故,我的看法仍然旋轉。我們來到我的問題的中心。我像這樣創建和呈現導航控制器:
AwesomeViewController *controller = [[AwesomeViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
[self presentViewController:navController
animated:YES
completion:NULL];
這是很簡單的,你可以看到。
的
navController
缺少了shouldAutorotate
設置爲FALSE
,這就是爲什麼它的旋轉,對嗎?如何鎖定縱向?
可不可以不做做一個荒謬的子類是這樣的:
@interface LockedRotationNavigationController : UINavigationController @end @implementation LockedRotationNavigationController - (BOOL)shouldAutorotate { return NO; } @end
什麼實際上,我尋找的是如何的UINavigationController
的禁止旋轉沒有子呢?
該物業是readonly
,所以我不知道如何做到這一點。
是否要在應用程序中全局禁用旋轉或僅針對此特定導航控制器禁用旋轉? – RaffAl
全球性也會很好。如果我通過'[[NSNotificationCenter defaultCenter] addObserver:self selector'註冊它們,我還能得到有關旋轉的通知:@selector(orientationChanged :) name:UIDeviceOrientationDidChangeNotification object:nil];'?那就可以了。 – Majster
哦,請張貼它作爲答案,我可以接受它:) – Majster