在我的通用应用程序中,我在开头有一个主要细节。在iPad上它只是显示为拆分视图,当我更改界面方向时,自动调整工作正常。但是在iPhone上,这在我的细节视图中效果不佳。所以我想为我的DetailViewController提供两个不同的视图,它们应具有完全相同的功能,但我无法让它正常工作。我尝试使用两个视图控制器,但这并没有真正完成这项工作。顺便说一句,我正在使用故事板。
我以为我通过向DetailViewController添加两个视图找到了解决方案。然后我只需检查当前方向并设置最近的视图:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Video *currentVideo = [[self.xmlParser videos] objectAtIndex:indexPath.row];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
[self.detailViewController setDetailItem:currentVideo];
else {
if (!self.detailViewController) {
DetailViewController *nextController = [self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
if ([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait)
[nextController setView:nextController.portraitView];
else
[nextController setView:nextController.landscapeView];
[nextController setDetailItem:currentVideo];
[self.navigationController pushViewController:nextController animated:YES];
}
}
}
这应该是应有的,但现在我面临另一个问题。这两个视图包含完全相同的出口,但我只能将其中任何一个的出口连接到我的DetailViewController类。因此,在其中一个方向上,我无法正确查看我的内容,或者我必须将所有内容编码两次,这正是我想要避免的内容。
我有什么想法可以解决这个问题吗?
提前致谢
答案 0 :(得分:1)
您可以尝试在容器视图中将两个视图添加到Storyboard中的视图控制器。尺寸一个是肖像,另一个是景观。将所需的所有控件添加到所需的视图中。当方向改变时 - 隐藏一个并显示另一个。