對不起,你想要的是標準行爲不可能的。當一個childViewController支持某個方向時,它的父級和所有其他ViewController都必須支持這個方向。
你應該做的是註冊parentViewController來接收設備輪換通知,然後基於那些你可以轉換childViewController的視圖。所以基本上你的應用程序將始終保持縱向模式,但是childViewController的視圖將被轉換爲看起來像橫向模式。
註冊設備方向的通知,像這樣
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(deviceDidRotate:) name: UIDeviceOrientationDidChangeNotification object: nil];
然後處理像這樣
// This method gets called everytime the device (!), not the viewController rotates
-(void)deviceDidRotate: (NSNotification*) notification
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
// Animate the transform here based on the orientation
}
記住UIDeviceOrientation和UIInterfaceOrientation是相反的。 UIDeviceOrientationLandscapeLeft = UIInterfaceOrientationLandscapeRight。該設備向左旋轉,因此用戶界面必須向右旋轉。
爲什麼你想要彈出如果父視圖不會旋轉?只因爲它可以嗎?還是有一個用例,這將是有用的? – benzado
相信我,這對我來說是有用的;) – Injectios