0

在我的通用应用程序中,我一开始就有一个主细节。在 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 类。因此,在其中一个方向上,我无法正确查看我的内容,或者我必须将所有内容编码两次,这正是我想要避免的事情。

有什么想法可以解决这个问题吗?

提前致谢

4

1 回答 1

1

您可以尝试将容器视图中的两个视图添加到情节提要中的视图控制器。尺寸一个是肖像,另一个是风景。将所需的所有控件添加到所需的任何视图。当方向改变时 - 隐藏一个并显示另一个。

于 2012-09-13T08:54:17.963 回答