gpt4 book ai didi

iphone - 两个模态视图 Controller 之间的动画转换

转载 作者:太空狗 更新时间:2023-10-30 03:50:13 24 4
gpt4 key购买 nike

我正在尝试在两个不同的事件模态视图 Controller 之间切换并尝试制作流畅的动画。理想情况下,我希望动画看起来就像新模态视图正在成为当前模态视图之上的模态视图一样。

为了在我的应用程序中保持一致,我需要限制在任何给定时间只显示一层模态视图 Controller 。

目前我只是让现有的模态视图消失,没有动画,然后在 RootController 上为下一个模态视图设置动画,但这看起来不太好。

谢谢

最佳答案

您可以使用默认转换在第一个 Model View Controller 上显示第二个 Model View Controller 。听起来您的第二个模型 View 正在与您的第一个模型 View 相同的 View Controller 中分配和初始化。如果是这种情况,请考虑重构您的代码,以便让第一个 Model View Controller 呈现第二个模态视图 Controller 。这样做会像您想要的那样在另一个上显示一个。

如果您需要将两个模态视图 Controller 的表示代码保存在同一个 Root View Controller 中,您可能需要创建一个委托(delegate)方法。这会将消息从第一个模态视图 Controller 发送回呈现它的 Root View Controller ,并传递对第一个模态视图 Controller 的引用。接下来,使用此引用告诉第一个模态视图 Controller 在其上呈现第二个模态视图 Controller 。

我肯定会推荐前一种解决方案,因为它在逻辑上更清晰,引入保留周期的可能性更小。

针对您的澄清:

要在两者之间转换,请尝试:

在您的 ModalViewControllerOne 实例中,该实例已从上一个 session 中显示:

self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self dismissModalViewControllerAnimated:YES];

在你的 rootViewController 的 -viewDidAppear:

ModalViewControllerTwo *modalViewControllerTwo = [[ModalViewControllerTwo alloc] init];
modalViewControllerTwo.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[rootViewController presentModalViewController:modalViewControllerTwo animated:YES];

这样做的想法是将第一个模态视图 Controller 交叉溶解回 Root View Controller ,然后立即将新的模态视图 Controller 交叉溶解回屏幕上。

如果只是启动画面之间的 View 不同,您可以使用一个具有逻辑的 View Controller 来代替两个 View Controller ,该逻辑仅根据输入的 URL 将一个 View 换成另一个 View ,并在以下情况下使用动画在 View 之间交换。

关于iphone - 两个模态视图 Controller 之间的动画转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com