我需要做一个自定义的演示动画,当我同时设置这些setTransitioningDelegate和modalPresentationStyle = UIModalPresentationCustom时,
除非在呈现的viewcontroller中未调用viewDidAppear和viewDidDisappear,否则动画是完美的。这与https://developer.apple.com/library/ios/samplecode/LookInside/Introduction/Intro.html中的Apple示例代码相同
[overlay setTransitioningDelegate:[self transitioningDelegate]];
overlay.modalPresentationStyle=UIModalPresentationCustom;
[self presentViewController:overlay animated:YES completion:NULL];
当没有给出modalPresentationStyle时为什么调用这些方法?
最佳答案
这是正确的行为,因为呈现新的视图控制器仅隐藏呈现的视图控制器。当关闭呈现的视图控制器时,它不会将视图添加到层次结构中,当呈现的视图控制器被呈现时,它也不会从层次结构中移除呈现的视图控制器视图。
短篇故事;它隐藏了呈现视图控制器的视图,而不是将其删除。因此,不会调用这些方法。