iOS Segue ViewController 缓存
Posted
技术标签:
【中文标题】iOS Segue ViewController 缓存【英文标题】:iOS Segue ViewController Caching 【发布时间】:2011-12-17 20:57:10 【问题描述】:在我的 ios 5 项目中,使用 ARC 和 Storyboards,我觉得我遇到了一个奇怪的行为。我想确认我所遇到的实际上是否是默认行为以及是否可以修改。
我在故事板上有一个NavigationController
和一个RootViewController
。这些都与特定的子类无关。在RootViewController
上,我有一个按钮连接到ListingViewController
的segue,它对Web 服务进行静态调用(不会因用户输入而异)。我注意到 - 至少在模拟器中 - 当我按下按钮时,返回并再次按下它,第二次加载速度不切实际!似乎 ListingViewController
正在被缓存。
这应该发生吗?我能做些什么来解决它?
【问题讨论】:
UIStoryboard
将缓存视图控制器。如果您希望每次显示视图控制器时都发生动作,则必须在 viewWillAppear
中执行此操作,如 Caleb 的回答中所述。
【参考方案1】:
这应该发生吗?我能做些什么来解决它?
为什么你认为它坏了?我还没有调查故事板是否保留了它的视图控制器,但如果确实如此,那就不足为奇了。
如果您正在做一些事情,例如在 -viewDidLoad
中发出 Web 服务请求,但您希望每次视图出现时都发生,您应该将其移至 -viewWillAppear
或 -viewDidAppear
。
【讨论】:
以上是关于iOS Segue ViewController 缓存的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7 中的 ViewController Undo Segue
故事板 Segue 与委派。哪种方法更适合在 ViewController 之间传递数据