以下是我的等级 [标签栏]-> [导航控制器]-> [包含表视图的VC]-> [详细信息VC]
在[VC包含表视图]中,我正在viewWillAppear
的API中获取详细信息并重新加载表。在“ Details VC”上单击“后退”按钮时,也会调用viewWillAppear
。在这种情况下,如何防止重新加载表?
我的问题与此问题Back to table view from detail page without reload, Swift相似,但由于我在此VC中对控件进行了分段控制,因此我需要将表重载代码保留在viewWillAppear
中,并且在切换段时需要重载表。
答案 0 :(得分:0)
您可以维护一个简单的标记基础机制来完成此任务。如下在您的ViewController中声明一个标志
class YourViewController: UIViewController {
// MARK: Internal Variable
private var shouldReloadDataOnViewWillAppear: Bool = true
override viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if shouldReloadDataOnViewWillAppear {
// your code for reloading data
}
shouldReloadDataOnViewWillAppear = true
}
现在,您可以在shouldReloadDataOnViewWillAppear
或false
内将prepareForSegue
设置为didSelectRowAtIndexPath
,这将限制下次您的视图控制器重新出现在主窗口上时的数据加载。