我正在对UINavigationController推送动画进行动画处理,以跟随this,但是问题是在完成动画之前不会调用viewDidLoad,这看起来很糟糕,因为我正在将照片等加载到目标视图控制器上。如何确保目标视图控制器已“准备就绪”(viewDidLoad)被调用并且在动画开始之前已初始化所有内容?

[UIView transitionWithView:self.navigationController.view
                      duration:0.75
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:^{
                        [self.navigationController pushViewController:viewcontroller animated:NO];
                    }
                    completion:nil];

最佳答案

听起来您的事件顺序是混乱的。理想情况下,应该以自己的方法加载照片。您可以在“ ViewWillAppear”方法中调用此方法,以便在加载视图之前完成此操作。在您的情况下,如果将图像加载移动到某个方法,则可以在[self.navigationController pushViewController:viewcontroller animated:NO];行上方调用它。

[viewcontroller loadImageMethod];

[UIView transitionWithView:self.navigationController.view
                           duration:0.75
                           options:UIViewAnimationOptionTransitionFlipFromRight
                           animations:^{
                                        [self.navigationController pushViewController:viewcontroller animated:NO];
                           }
                           completion:nil];

关于ios - 在动画完成之前,翻转过渡UINavigationController推送不会调用viewDidLoad,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29202450/

10-12 14:29
查看更多