iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了xcode – 如何避免Modal Storyboard无限循环大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

年前我在旧版 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无限循环所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。