0

我多个视图控制器将在单击按钮时显示动态视图控制器,这是我的视图控制器的布局方式: 在此处输入图像描述

在按下“开始”按钮之前,“calculationView”视图不会显示任何内容。当用户在视图控制器 2 中按下“开始”按钮“calculationView”时,会显示一个子视图控制器(此处未显示)。

View Controller 2 中的后退箭头将用户带回到选项卡栏中的 Item 1,并在计算视图中的 VIew Controller 2 中显示相同的视图控制器。

现在,除了视图控制器 1 中的计算视图中的内容在视图显示后大约一秒出现之外,一切正常。

这是我在 View Controller 2 中加载计算视图的方式:

- (IBAction)startRunning:(id)sender {
    NSLog(@"Start button pressed.");

    helper = [[RunsDataHelper helper] init];

    // Set this value to true so then other views also display the calculationsView
    [helper setRunInProgres:YES];

    // Add Calculations View Controller
    CalculationViewController *calculationController = [self.storyboard instantiateViewControllerWithIdentifier:@"Calculate"];
    [self addChildViewController:calculationController];
    calculationController.view.frame = self.calculationView.bounds;
    [UIView transitionWithView:self.calculationView
                      duration:0.4
                       options:UIViewAnimationOptionTransitionCurlDown
                    animations:^{
                        [self.calculationView addSubview:calculationController.view];
                    }
                    completion:nil];
    [calculationController didMoveToParentViewController:self];

}

下面是我如何使用 runInProgress BOOL 在 View Controller 1 中显示计算视图:

-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    helper = [[RunsDataHelper helper] init];
    if([helper runInProgres] == YES)
    {

        //Add Calculations View Controller
        CalculationViewController *calculationController = [self.storyboard instantiateViewControllerWithIdentifier:@"Calculate"];
        [self addChildViewController:calculationController];
        calculationController.view.frame = self.calculationView.bounds;
        [self.calculationView addSubview:calculationController.view];
        [calculationController didMoveToParentViewController:self];
    }

}

问题:
现在我的问题是如何制作它,以便计算视图与视图控制器 1 同时出现。

另外,我有一个设计问题。计算视图将位于每个视图控制器上的静态位置。有没有更好的方法在基于 runInProgress BOOL 的每个视图控制器上显示计算视图。

4

0 回答 0