如何在presentModalViewController完成滑动后进行动画处理?

时间:2011-06-09 23:12:46

标签: ios core-animation presentmodalviewcontroller

我正在显示一个错误的登录屏幕,例如:

_loginViewController.error = error;
[_navigationController presentModalController: _loginViewController
                                     animated: YES];

在LoginViewController中,我想将错误信息滑动到屏幕上,如下所示:

- (void)showErrorAnimated: (BOOL)animated;
{
    _errorLabel.text = [_error localizedDescription];

    [UIView beginAnimations: @"showError"
                    context: NULL];
    CGRect frame = [_errorView frame];
    frame.origin.y = 0; // starts at -frame.size.height
    [_errorView setFrame: frame];
    [UIView commitAnimations];
}

但是我不知道如何调用它来匹配视图控制器的时间完成它滑动到presentModalController:animated:开始的屏幕顶部。

如何让这个时间有效?

1 个答案:

答案 0 :(得分:1)

您应该使用控制器的viewDidAppear方法,该方法将在显示视图时调用。

http://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW17

请注意viewDidAppear因为只要您的视图显示就会调用它。这意味着如果您的控制器提供模态控制器然后它被解除,则将再次调用viewWillAppearviewDidAppear方法。