Iphone 强制加载/卸载视图
如何设置视图控制器以刷新视图中的字段?仅当视图控制器从导航控制器视图中弹出时,它被推送到导航控制器上并释放对象 我的目标是,对于视图控制器:Iphone 强制加载/卸载视图,iphone,cocoa,cocoa-touch,uikit,uinavigationcontroller,Iphone,Cocoa,Cocoa Touch,Uikit,Uinavigationcontroller,如何设置视图控制器以刷新视图中的字段?仅当视图控制器从导航控制器视图中弹出时,它被推送到导航控制器上并释放对象 我的目标是,对于视图控制器: 仅在导航控制器堆栈上按下时刷新显示 从导航控制器堆栈弹出数据时释放数据 尽可能重用控制器(以消除xib文件加载/卸载开销) viewwillbepush:和viewWillBePopped:是否有任何委托方法 范例 假设我有三层视图: Movies (MovieListController) --> Movie Basic Info (Movi
viewwillbepush:
和viewWillBePopped:
是否有任何委托方法
范例
假设我有三层视图:
Movies (MovieListController)
--> Movie Basic Info (MovieInfoController)
--> Movie Credits (MovieCreditsController)
假设我们有一个类Movie
来表示每一部电影
这里,我只希望有三个UIViewController
s,在程序运行时每个都有一个实例。因此,我可以对不同的电影重复使用相同的MovieInfoController
,同样的moviecreditcontroller
但是,我还希望MovieInfoController
仅在将其推到堆栈上时更新其视图字段(例如标题、发布日期等)。在视图中实现显示将出现
将强制它更新字段,即使MovieCreditController
被弹出
此外,我希望MovieInfoController
在弹出时释放对Movie
的引用,以及任何可能较大的对象(例如封面图像)。在视图中执行此逻辑将消失
将导致它在堆栈上按下MovieCreditController
时释放数据
这是否合理?我走错方向了吗?你90%的成功是因为你创建了一个电影对象。MovieListController应拥有一个MovieInfoController。在将其推到导航控制器上之前,它应该调用
-setMovie:
。对-setMovie:
的调用应该是更新字段的内容
类似地,MovieInfoController应该拥有一个MovieCreditController,在将其推到导航控制器上之前,应该在其上调用-setMovie:
在MovieListController和MovieInfoController中,您可以在它们的
-view中调用[setMovie:nil]
,以释放内存。这实际上就是我现在所做的,只是它调用drainFieldsInfo
而不是setMovie:nil
。我希望有更好的。谢谢你!