在詳細信息視圖控制器,你可以設置一個不同的看法完全使用這樣的事情(代碼從我最近的項目):
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toOrientation
duration:(NSTimeInterval)duration
{
if ([graphView superview]) {
if (toOrientation == UIInterfaceOrientationPortrait ||
toOrientation == UIInterfaceOrientationPortraitUpsideDown) {
[graphView removeFromSuperview];
}
} else {
if (toOrientation == UIInterfaceOrientationLandscapeLeft ||
toOrientation == UIInterfaceOrientationLandscapeRight) {
[[self view] endEditing:YES];
[[self view] addSubview:graphView];
}
}
}
現在隱藏的TabBar當你在景觀(黑客攻擊的一位,但工程):
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
UIInterfaceOrientation toOrientation = self.interfaceOrientation;
if (self.tabBarController.view.subviews.count >= 2)
{
UIView *transView = [self.tabBarController.view.subviews objectAtIndex:0];
UIView *tabBar = [self.tabBarController.view.subviews objectAtIndex:1];
if(toOrientation == UIInterfaceOrientationLandscapeLeft ||
toOrientation == UIInterfaceOrientationLandscapeRight) {
transView.frame = CGRectMake(0, 0, 480, 320);
tabBar.hidden = TRUE;
}
else
{
transView.frame = CGRectMake(0, 0, 320, 480);
tabBar.hidden = FALSE;
}
}
}
對於這個項目,我添加了一個名爲「graphView」的觀點,我想出現當且僅當在橫向模式下,然後我想的TabBar是隱。這聽起來與你之後的事情類似,我想。
我預見到的唯一潛在問題是,如果您在推送詳細視圖之前進入橫向模式,事情可能會變得不可靠。因此,您可能希望在列表視圖控制器中使用這些方法。這個問題從來沒有出現過,但是在我意識到它沒有實際意義之前,這是我想到的。