gpt4 book ai didi

ios - 如何覆盖 popToRootViewController 以附加方法?

转载 作者:行者123 更新时间:2023-11-28 15:20:10 27 4
gpt4 key购买 nike

我将 UINavigationController 子类化,并通过它的 didShow 委托(delegate)(每当将新 View Controller 插入堆栈时调用该委托(delegate)),我更新了一个名为 previousViewController 的实例变量(能够执行一些自定义工作)。

实例变量:

class SectionNavigationController: UINavigationController {

var previousViewController: UIViewController?
...

更新的委托(delegate):

// nav controller delegate method (did show)
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {

if currentIndex! > 0 {
previousViewController = navigationController.viewControllers[currentIndex! - 1]
}

}


然而,因此,无论何时调用 popToRootViewController,顶层 View Controller (previousViewController) 下的 View Controller 都不会因为这个引用而被取消初始化。我如何重写 popToRootViewController,使其所做的只是附加 previousViewController 的取消初始化?

最佳答案

检查 this苹果文档

You resolve strong reference cycles by defining some of therelationships between classes as weak or unowned references instead ofas strong references.

你应该将你的 var 声明为 weak

关于ios - 如何覆盖 popToRootViewController 以附加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com