在全球范围内检测iOS中的导航更改



是否有一种方法可以在AppDelegate或SceneDelegate中检测iOS中的导航更改?所以,基本上,任何触发委托或通知的出席、推送或驳回?我知道android有一个方法来处理这个特定的用例,React Native中也有useFocusEffect,但我在iOS中找不到类似的东西。浏览了所有NSNotifications的列表,除了一个仅链接到MacOS的通知外,什么都找不到。

不确定为什么需要它,但您可以对UINavigationController进行扩展并在其自身上实现委托,然后在viewDidLoad中分配委托。这是非常棘手的,但看起来像这样:

extension UINavigationController: UINavigationControllerDelegate {

open override func viewDidLoad() {
super.viewDidLoad()
delegate = self
}

public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
// Do code here
}

}

你介意分享一下你为什么需要这个吗?因为可能有一种更符合iOS标准的方式来实现您想要的。

最新更新