通过击打后按钮,通过segue丢失的数据传递



我有两个视图控制器a和b,一个从a到b(类型:显示(通过下一个按钮,从b到A(类型:显示(通过后面按钮。我通过SEGUE A传递了一些数据。如果我只是从控制器A点击下一个并转到控制器b。

,可以正确显示数据。

但是,如果我接下来点击,然后转到控制器B,然后返回并返回A然后再次击中,则无效。有什么想法在这里发生了什么事?对不起,语言令人困惑。

听起来像您的" b到a"是错误的,您使用的是导航堆栈,因此您只能在向前迈进时推(显示(。倒退时,您应该弹出顶部(解雇(

如果您不断推动,该应用将继续将越来越多的视图转换器放在内存中,这是不好的。

我怀疑这里发生了什么是查看一个最初具有数据并将其传递给视图B。然后,当您按下返回按钮时,它会创建一个没有数据的视图A的新副本,并表明而不是而是原始视图a。

简而

我同意用户2877496,因为您不应使用常规segue从b返回到A,因为您每次都会在堆栈中添加" A"。我只是想添加一种消除B并通过使用Undind Segue回到A的方法。Apple文档很好地涵盖了https://developer.apple.com/library/content/technotes/tn2298/_index.html

您解决了这个问题吗?我的猜测是,您在ViewDidload(仅在应用程序的开头运行一次(,并且需要在ViewWillAppear中执行执行内容,因此每次返回主视图控制器时都会称呼它。如果您需要进一步的帮助,请提供这些方法的代码。

最新更新