【发布时间】:2016-09-06 03:34:31
【问题描述】:
点击 ViewController1 中的按钮会将应用程序连接到 ViewController2。
点击按钮也会触发稍微占用 CPU 的操作。 (即,合并多个图像并将结果写入磁盘)。在点击按钮之前无法启动此操作。
副作用是糟糕的用户体验。 ViewController1 按钮高亮显示的时间更长,segue 明显延迟。
将密集的代码移动到 ViewController2 的 viewDidLoad 函数似乎没有帮助,因为它会产生延迟,但在 ViewController2 方面不是 ViewController1。
将代码移动到 ViewController2 的 viewDidAppear 似乎也是不可取的,因为这个操作应该只触发一次,而不是每次 ViewController2 出现。添加一个变量来跟踪操作是否已触发似乎不是最理想的。
另一种选择是将代码放在 ViewController2 的 viewDidLoad 中,但会在 dispatch_after 中引入一点延迟,以确保代码不会破坏 segue。
处理这种模式的正确方法是什么?
是否有另一个 UIViewController 函数应该用于此目的(即代码只执行一次,并且只有在 UIViewController 向用户展示自己之后)?
【问题讨论】:
标签: ios swift uiviewcontroller uistoryboardsegue