Ios 当使用新的ViewController更新视图时,UINavigationController必须调用方法

Ios 当使用新的ViewController更新视图时,UINavigationController必须调用方法,ios,swift,uiviewcontroller,uinavigationcontroller,Ios,Swift,Uiviewcontroller,Uinavigationcontroller,我有一个uinavigationcontrollers子类。当视图控制器弹出到某个新的视图控制器时(通过navigationController.popViewController,navigationController.poptrootViewController,甚至通过从左向右手动滑动 我需要在导航控制器内部调用: viewController.newTopViewController.updateBackButtonTitle() 实现这一点的最佳方法是什么?当您返回到viewCon

我有一个uinavigationcontrollers子类。当视图控制器弹出到某个新的视图控制器时(通过
navigationController.popViewController
navigationController.poptrootViewController
,甚至通过
从左向右手动滑动

我需要在导航控制器内部调用:

viewController.newTopViewController.updateBackButtonTitle()

实现这一点的最佳方法是什么?

当您返回到viewController时,请调用此ViewWillExample方法。在该函数中,您可以检查rootviewController,然后调用

UpdateBackButtonTile() 功能


您可以使用viewWillAppear方法,轻松更新UI控件
super.view将显示(动画)

一种方法是:

class CustomNavigationController: UINavigationController {

    override func popToRootViewController(animated: Bool) -> [UIViewController]? {
        shouldUpdateBackButtonTitle()
        return super.popToRootViewController(animated: animated)
    }

    override func popViewController(animated: Bool) -> UIViewController? {
        shouldUpdateBackButtonTitle()
        return super.popViewController(animated: animated)
    }

    private func shouldUpdateBackButtonTitle() {
        viewController.newTopViewController.updateBackButtonTitle()
    }
}

不,我有100个视图控制器,但没有基本视图控制器,我需要从导航控制器(viewController->function)调用此方法,但我需要添加函数popToViewController和self.interactivePopGestureRecognizer.addTarget,并在其中添加此逻辑。我只是认为这可能是一个更好的解决办法。恐怕没有一种方法可以处理所有的情况。但可能值得广泛查看UINavigationController文档。您是否找到了解决问题的解决方案或方法@保罗,坦白说我已经不记得我是怎么做到的了,所以我要记下你的问题是正确的