0

我需要做一个自定义演示动画,当我同时设置这些 setTransitioningDelegate 和 modalPresentationStyle=UIModalPresentationCustom

除非在呈现的视图控制器中未调用 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 时调用这些方法?

4

1 回答 1

3

这是正确的行为,因为呈现新的视图控制器只会隐藏呈现的视图控制器。当呈现的视图控制器被解除时,它不会将视图添加到层​​次结构中,并且当呈现的视图控制器被呈现时,它不会从层次结构中删除呈现的视图控制器视图。

短篇故事; 它隐藏呈现视图控制器的视图而不是删除它。因此不会调用这些方法。

于 2015-12-29T19:10:45.457 回答