xcode – 如何避免Modal Storyboard无限循环

xcode – 如何避免Modal Storyboard无限循环,第1张

概述一年前我在旧版 Xcode上编写了许多iOS应用程序.我刚刚开始一个新项目并在最新的Xcode中发现了故事板功能.事实证明,这对于我正在编写的应用程序来说是完美的,因为它包含~30个相互关联的屏幕. 我的问题是,我如何构建我的故事板和segues以允许我的应用程序在我的屏幕上遵循循循环径.我已经看到了一些examples,只需将屏幕1屏幕1屏幕2,然后使用模态选项屏幕2屏幕1.这显然有效,但是当我 一年前我在旧版 Xcode上编写了许多iOS应用程序.我刚刚开始一个新项目并在最新的Xcode中发现了故事板功能.事实证明,这对于我正在编写的应用程序来说是完美的,因为它包含~30个相互关联的屏幕.

我的问题是,我如何构建我的故事板和segues以允许我的应用程序在我的屏幕上遵循循循环径.我已经看到了一些examples,只需将屏幕1屏幕1屏幕2,然后使用模态选项屏幕2屏幕1.这显然有效,但是当我调试以这种方式构建的应用程序时,它会为每个执行的segue实例化每个屏幕的新实例(视图控制器).在下面的图表中(道歉,我画了一张漂亮的图片,但由于我的新手状态,无法发布),如何从屏幕1转到屏幕2到屏幕3并返回到原始屏幕1而不创建新的实例?

// Screen 1 --> Screen 2 --> Screen3 //     ^                         | //     |                         | //     +-------------------------+
解决方法 好吧,自从提出这个问题以来,我做了一些研究,我相信我可以为这个问题提供一个合理的答案.简而言之,我在问题中提出的方法与故事板和segue实际工作的方式不兼容. Segues始终实例化其所针对的视图控制器/视图的新实例.这意味着当我们从屏幕3返回到屏幕1时,我们将进入屏幕1的新实例,而不是原始实例.要解决这个问题,我将略微区别地实现故事板.

// Screen 1 --> Screen 2//     |//     +------> Screen 3

然后,我将确认屏幕1以从屏幕2和3收听“下一屏幕”消息(通过委托/协议).

当屏幕1上的用户选择屏幕2的按钮时,故事板和segue将处理屏幕2的模态实例化.当屏幕2上的用户选择“下一屏幕”按钮,而不是切换到屏幕3时,我将解雇屏幕2并且屏幕1通过新屏幕1启动屏幕3 – >屏幕3 segue.

这种方法的优点是允许屏幕1成为循环中所有后续屏幕的主控制器(在我的实例中,我在循环中有10个屏幕/练习).唯一的缺点是故事板不能很好地反映屏幕的流动.

我希望能帮助其他人尝试在他们的iOS项目中实现同样的目标.

总结

以上是内存溢出为你收集整理的xcode – 如何避免Modal Storyboard无限循环全部内容,希望文章能够帮你解决xcode – 如何避免Modal Storyboard无限循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1055010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存