如何设置视图控制器以刷新视图中的字段,仅将其推送到导航控制器上并在从导航控制器视图中弹出对象时释放对象。
我的目标是对于视图控制器:
- 仅在将显示推送到导航控制器堆栈时刷新显示
- 从导航控制器堆栈中弹出数据时释放数据
- 尽可能重用控制器(以消除 xib 文件加载/卸载开销)
viewWillBePushed:
和是否有任何委托方法viewWillBePopped:
?
例子
假设我有三层视图:
Movies (MovieListController)
--> Movie Basic Info (MovieInfoController)
--> Movie Credits (MovieCreditsController)
假设我们有一个类Movie
来表示每部电影。
在这里,我只想UIViewController
在程序运行时拥有三个,每个实例一个。所以我可以MovieInfoController
为不同的电影重复使用相同的内容,并且类似地MovieCreditsController
。
但是,我还想MovieInfoController
仅在将其推送到堆栈时才更新其视图字段(例如标题、发布日期等)。实现显示viewWillAppear
将强制它更新字段,即使在MovieCreditsController
弹出时也是如此。
另外,我想MovieInfoController
释放它的引用Movie
,当它被弹出时,以及任何潜在的大对象(例如封面图像)。实现这个逻辑viewWillDisappear
会导致它MovieCreditsController
在压栈时释放数据。
有合理的吗?我是不是走错了路?