【发布时间】:2014-09-12 19:01:21
【问题描述】:
我有一个带有故事板的应用程序。我从情节提要中的视图控制器 A 开始。这个 VC A 有几个视图/子视图。运行时,用户可以从它们最初加载的位置修改/调整大小/移动这些子视图。它工作正常。
然后,用户选择并执行导致情节提要中出现模态转场的操作,以查看控制器 B。这会正常加载 VC B。但是,我可以看到,正如模态转换正在为 B 设置动画一样,VC A 中由用户修改的子视图丢失了……它们恢复到最初加载的位置。然后,当 VC B 最终被解散并且转场回到 VC A 时,视图仍保留在那些原始位置——这意味着用户不会得到与他以前相同的子视图排列。这是糟糕的连续性,糟糕的体验。
这里发生了什么?如何通过模态 segue 保留这些子视图并返回?我已经尝试了几个步骤,包括保存子视图的框架(在 viewWillDisappear 中)和恢复它们(在 viewWillAppear 中),但它不起作用......这些子视图不会在新位置重绘。我假设这些 viewWill/viewDid 实现与视图移动不兼容。
奇怪,我还有一个集合视图,其内容在转换过程中不会丢失......似乎只是这些子视图位置/帧。
【问题讨论】:
标签: iphone objective-c uiviewcontroller storyboard autolayout