3

我使用 UIStoryboard 中的 segue 在我的代码中加载视图控制器。基于一些用户选择的选项,然后我使用动画隐藏或显示 UI 控件。一切正常。

- (void)showComments {
    NSLog(@"Show Comments");
    _commentsTextView.hidden = NO;
    _commentsTextView.frame = CGRectMake(435, 266, 475, 134);

    [UIView animateWithDuration:1 animations:^{
        _commentsTextView.alpha = 1;
        _signatureButton.frame = CGRectMake(435, 420, 475, 134);
        _cancelButton.frame = CGRectMake(568, 581, 100, 44);
        _finishedButton.frame = CGRectMake(676, 581, 100, 44);
    }];

}

然后,我将使用以下代码展示在 UIStoryboard 中创建的视图控制器:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];

    SigningViewController *signingVC = (SigningViewController *)[storyboard instantiateViewControllerWithIdentifier:@"SigningViewController"];
    signingVC.object = self;
    signingVC.signatureProperty = @"employeeSignature";
    signingVC.startDate = self.startDate;
    signingVC.endDate = self.endDate;

    [self presentViewController:signingVC animated:YES completion:nil];

当此代码触发时,一切都按预期发生,除了一件事:隐藏或显示 UI 控件的所有自定义动画都会恢复。就好像通过调用 presentViewController 方法,它正在从 UIStoryboard 重绘我现有的视图。

在模态显示新视图之前,有没有办法让它退出从情节提要中重绘/重新加载我现有的视图?

4

2 回答 2

0

我也有同样的问题。每当模式关闭时,无论我尝试更改动画,它似乎都会重置回原始情节提要。

我不得不采用的解决方案是将任何动画视图作为出口添加到头文件中。从故事板上的视图控制器的 self.view 或主视图中取出视图,并以编程方式将其添加为子视图。将帧设置到您想要的位置,并且在结束模态后所有动画位置都应该相同。如果您需要更多解释并告诉我,它对我有用。

于 2013-10-24T03:32:29.400 回答
0

我遇到了同样的问题,并以更详细的形式将其发布在这里,名为 kokx 的用户对我帮助很大,答案记录在我的问题页面中。

于 2015-07-10T12:40:47.023 回答