从最初的ViewController我已经在故事板中使用 ShowDetail segue和performSegueWithIdentifier:
方法调用模态地呈现了第二个ViewController。问题是当我用方法dismissViewControllerAnimated:
解雇这个模态ViewController时,重新初始化ViewController,再次调用viewDidLoad
。
我尝试使用推送 segue而不是显示详细信息,并且初始ViewController会在后台保持分配。
可能发生了什么?最初的ViewController甚至从不调用内存警告方法。
答案 0 :(得分:0)
你试过unwindSegues吗?
*****如果您想快速解决问题,请提前解释,跳至解决方案
首先,如果是ShowDetail,它不是模态视图。试着看看你的情况。 模态segue可以向后传递信息,但比推送信息稍微复杂一些。 如果您以模态方式呈现它,则应使用目前模态而不是 ShowDetail 。
模式演示文稿始终会占据堆栈中的顶部视图位置,显示详细信息也会起作用,具体取决于视图的设置方式。例如,如果您有一个堆栈中的详细信息视图,那么IT将被替换而不是堆栈顶视图。
尝试选择特定的segue,我特别推荐modal,假设你需要的不仅仅是简单推送(或者Show会关闭问题,相当于之前弃用的推送。如果你只需要简单的东西,Show is is方式)
现在我们已经清除了这一点,可能发生的事情是视图被删除,因为Show Detail 替换了视图而不是推送它们,并且它必须再次执行init。
*****解决方案:*****
然后解决方案不应该在替换和重新初始化dismissViewControllerAnimated:
时失去视图。 如果你使用展开segues,视图应该被替换但是由ARC保留。
以下链接在网上有关于如何使用它的最佳解释: