2

在此处输入图像描述我有一个看起来像所附图像的故事板。

这个想法是有三个纵向视图,显示当前消耗,用户可以通过向左滑动来导航。为此,我正在使用向左滑动手势识别器。然后我添加右滑动手势识别器,然后连接到一个放松的 segue 以返回。这工作正常。

顺序是[电和气] -> [电] -> [气]。

每个纵向视图都有一个对应的横向详细视图。还设置了这些,以便用户可以通过滑动进行导航,我展开 segues 以便他们可以向后滑动。同样的顺序是 [both graph] -> [electricity graph] -> [gas graph]。

我还希望用户能够通过旋转设备从任何纵向视图移动到其相应的详细视图。我在每个纵向控制器中发现了旋转,并以编程方式执行 segue,就像这样(对于气体)。(请注意,代码对正确的方向还不够稳健,而我只是在试验。)

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)aToInterfaceOrientation duration:(NSTimeInterval)aDuration {

    [self performSegueWithIdentifier: @"SegueGasToLandscape" sender:self];
} 

因此,例如,用户可能会滑动两次以查看燃气画像页面,然后旋转设备以查看燃气消耗的详细图表。

从这里开始,我希望用户能够向右滑动以查看电力详细信息图表,然后再次向右滑动查看两者的图表 - 但这不会发生,因为这样做的方法是放松滑动那还没有发生。(事实上​​,景观电力视图控制器此时甚至还没有实例化。)

我认为我需要的不是使用展开转场,而是在整个过程中使用正常转场。但是,我想在不为现有控制器创建新实例的情况下执行此操作(就像展开转场一样),而是在需要时创建一个新的实例化(因为展开转场不需要)。

如果这很重要,我很乐意为 iOS 6.1 及更高版本编写代码。

有人做过吗?

4

1 回答 1

0

听起来您想使用 InstantiateViewControllerWithIdentifier:不要忘记设置接收视图控制器的 Storyboard ID。

if (!self.homeVC)
{
    self.homeVC = [self.storyboard instantiateViewControllerWithIdentifier:@"homeView"];
    [self presentViewController:self.homeVC animated:YES completion:nil];
}
于 2013-05-01T01:04:14.993 回答