从详细信息页面返回表视图,而无需重新加载表

时间:2019-01-21 01:18:22

标签: ios swift uitableview uinavigationcontroller tableview

以下是我的等级 [标签栏]-> [导航控制器]-> [包含表视图的VC]-> [详细信息VC]

在[VC包含表视图]中,我正在viewWillAppear的API中获取详细信息并重新加载表。在“ Details VC”上单击“后退”按钮时,也会调用viewWillAppear。在这种情况下,如何防止重新加载表?

我的问题与此问题Back to table view from detail page without reload, Swift相似,但由于我在此VC中对控件进行了分段控制,因此我需要将表重载代码保留在viewWillAppear中,并且在切换段时需要重载表。

1 个答案:

答案 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
}

现在,您可以在shouldReloadDataOnViewWillAppearfalse内将prepareForSegue设置为didSelectRowAtIndexPath,这将限制下次您的视图控制器重新出现在主窗口上时的数据加载。