miamk的支持性的答案後,我更接近了一步實現我想要的東西。但現在有以下問題:具有多個視圖的iPad應用程序,如何讓一個視圖僅在橫向上可見?
我有一個可以在所有四個視圖模式(使用一個iPad應用程序的畫像上/向下和左/右)。但在某個時候我有一個觀點,我只想在風景模式中看到。所以,我中的UIViewController以下將觸發操作來查看的唯一景觀視野:
- (void) showProperty:(Property *) property {
if ([self interfaceOrientation] == UIInterfaceOrientationLandscapeLeft || [self interfaceOrientation] == UIInterfaceOrientationLandscapeRight) {
PropertyViewController *propertyView = [[PropertyViewController alloc] initWithNibName:@"PropertyViewController" bundle:[NSBundle mainBundle]];
propertyView.property = property;
[self.navigationController pushViewController:propertyView animated:YES];
[propertyView release];
propertyView = nil;
}
else {
RotateDeviceViewController *rotateView = [[RotateDeviceViewController alloc] initWithNibName:@"TabRotate" bundle: [NSBundle mainBundle]];
rotateView.property = property;
[self.navigationController pushViewController:rotateView animated:YES];
[rotateView release];
rotateView = nil;
}
}
這工作得很好,因此顯示或者所需的屏幕(PropertyViewController)當iPad在橫向模式舉行,如果沒有,則顯示RotateDeviceViewController,它向用戶顯示一條消息,表明他/她應該旋轉設備以正確地查看屏幕。
這樣的作品!
那麼問題在這個RotateDeviceViewController出現。有我有以下幾點:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UIInterfaceOrientationIsLandscape(interfaceOrientation))
[self showProperty];
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
- (void) showProperty {
PropertyViewController *propertyView = [[PropertyViewController alloc] initWithNibName:@"PropertyViewController" bundle:[NSBundle mainBundle]];
propertyView.property = property;
[self.navigationController pushViewController:propertyView animated:YES];
[propertyView release];
}
所以只要我旋轉設備(查看RotateDeviceViewController時)爲橫向模式我展示用戶PropertyViewController。這工作...但是,當出現PropertyViewController它顯示我的佈局90度旋轉。所以基本上它顯示肖像的內容,而不是使用景觀模式(實際上是你持有設備的方式)的模式..
我希望這是有道理的,有人能告訴我是什麼導致了這。
你是如何交換意見的?這可能是相關的:http://stackoverflow.com/questions/835989/iphone-landscape-mode-switching-to-portraite-mode-on-loading-new-controller – Simeon