繁体   English   中英

如何检测是否再次出现推入的ViewController?

[英]How to detect if a pushed viewcontroller appears again?

  • 假设我有一个推QRCodeScannerViewcontroller(VCB)一个视图-控制(VCA)。 (vcB)扫描某些内容时,它将推送ResultviewController (vcC)

-将这3个视图连接到UInavigation控制器

-用户单击(vcC)上的后退按钮

我的问题是:

1)我如何知道(vcB)是否可见而不更改(vcB)上的代码? (vcB)是一个广告连播

2)我该把代码放在哪里? 我只能访问(vcA)

我尝试在(vcA)上添加此代码,但没有任何反应

override func viewDidDisappear(_ animated: Bool) {

    if (vcB.isViewLoaded && (vcB.view.window != nil)){
        print("vcb did appear!")
    }

}

要知道导航堆栈中是否存在cvB类的实例,可以使用以下代码:

let result = self.navigationController?.viewControllers.filter({
    if let vcB = $0 as? UIViewController { // Replace UIViewController with your class, for example ViewControllerB
        return true
    }
    return false
})

if result.isEmpty {
    print("An instance of vcB's class hasn't been pused before")
} else {
    print("An instance of vcB's class has been pused before")
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM