ios - UINavigationController 必须在使用新 ViewController 更新视图时调用方法
问题描述
我有一个 UINavigationControllerSubclass。当视图控制器弹出到某个新的视图控制器时(通过navigationController.popViewController
,navigationController.popToRootViewController
甚至通过manually sliding from left to right
)
我需要在我的导航控制器内部调用:
viewController.newTopViewController.updateBackButtonTitle()
实现这一目标的最佳方法是什么?
解决方案
一种方法如下:
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()
}
}
推荐阅读
- angular - 如何使用 Angular8/Material 在 mat-select 中添加全选触发器
- django - 如何在 Django 函数视图中添加两个渲染
- azure - 从 javascript 中的另一个 azure 函数调用 azure 函数
- c++ - 使用 -fno-ellide-constructors 编译时连续调用移动构造函数
- c++ - 你如何 static_cast 一个 std::unordered_set?
- javascript - 我可以使用两个 id 访问一个元素吗?
- javascript - 如何将 Javascript 文件链接到另一个 Javascript 文件
- android - 我如何上诉表格填写?我的 AdSense 帐户已停用
- r - R:在添加的汇总列中得到不正确的结果
- settings - 为什么在 ClickHouse 中未显式修改设置时会抛出“无法在只读模式下修改设置”?