重复使用在线应用程序的视图控制器并且仍然有一个后退按钮

Repeatedly use view controller for online app and still have a back button

总体而言,我对编程还比较陌生,目前正在设计一个数据库项目,但现在我 运行 遇到了一个逻辑问题,我的脑袋无法弄清楚。

问题是我有一个视图控制器,它从数据库中加载一个列表,当你点击它时它会打开一个细节,从那个细节中有一个按钮加载到列表中,就像我们来自上一个,所以我使用相同的视图控制器,只是请求不同的数据。到目前为止,一切都很好。

但现在问题来了,有一个后退功能,所以当我现在按下后退一次我回到细节时,而不是当我第二次按下后退时,它加载了我在该列表中加载的最后一个数据所以它加载了错误的数据。

我想要的一个很好的例子是 Facebook 好友功能,当我点击我的好友时,它会加载一个列表,然后我可以点击他们的好友,我看到相同的列表但数据不同,但是当我去后退两步,它再次加载到我的朋友中。我让它与一个非常混乱和不切实际的寄存器系统一起工作,但这非常糟糕,因为它有时会抛出错误。

那么有人知道我怎样才能达到我想要的吗?

当您 "reuse" 这个视图控制器时,我建议每次都创建一个该视图控制器的新实例。这样,(假设你避免使用任何全局变量,而是只使用 class 的属性)你保证每次创建视图控制器的新实例时,它不会影响其他实例可能存在于之前实例化的视图控制器的导航控制器堆栈中的其他位置。