我有以下ViewControllers:縱向在一個視圖中控制器和在另一個橫向
InformationViewController和cardViewController。
我如何確保informationViewController處於縱向模式並且不能旋轉。
然後cardViewController應該處於橫向模式,不能旋轉。
我如何在每個viewController中實現這一點。我在那一刻被激活寫真,風景權和一般
我有以下ViewControllers:縱向在一個視圖中控制器和在另一個橫向
InformationViewController和cardViewController。
我如何確保informationViewController處於縱向模式並且不能旋轉。
然後cardViewController應該處於橫向模式,不能旋轉。
我如何在每個viewController中實現這一點。我在那一刻被激活寫真,風景權和一般
在信息視圖控制器
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
,並在卡片視圖控制器
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
注:請務必在項目一般設定打勾設備取向的縱向和橫向模式(部署信息)
留在informationViewController:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
在cardViewController:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscape);
}
是的,這會阻止視圖控制器旋轉到「禁止」方向。但是當它們中的一個被推倒在另一個或後來的後面時,它不會使設備旋轉視圖。 –
看一看我回答這個問題: Force controllers to Change their orientation in Either Portrait or Landscape
(但不要使用不贊成使用的方法,有更新的方法可以使用它們)
將視圖控制器限制在某些方向很容易。但看到如何強制設備實際旋轉的另一個答案。 沒有這種把戲:如果只有縱向視圖控制器在設備處於橫向時變得可見,那麼無論您如何限制其支持的方向,它都將以橫向顯示。
雖然下面的一些答案可以幫助您回答這個問題,但我只是提供友好的提醒,表明這種情況違反了用戶界面的建議。它提供了糟糕的用戶體驗來強制用戶在視圖之間旋轉設備,除非有非常明確和明確的需求。雖然您可以有效地使用它,但重新考慮用例並確定您是否真的需要這樣做。 – mrosales