这个Apple Doc看起来很有前途,https://developer.apple.com/reference/uikit/uinavigationcontrollerdelegate?language=objc但它们没有被调用。
我有一个继承自UINavigationController的CustomNavigationController。我需要知道从CustomNavC推送或弹出VC的时间。
我可以符合UINavigationControllerDelegate,但这似乎更适合ViewControllers。不适用于CustomNavC来执行self.delegate = self
。
如何实现这一目标?
更新:误报。对不起。我正在测试设备并禁用了OS_ACTIVITY_MODE。 UINavigationControllerDelegate函数工作正常。
答案 0 :(得分:1)
一种选择是覆盖pushViewController
和popViewController
方法。
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
[super pushViewController:viewController animated:animated];
// Handle push as needed
}
您也可以覆盖几种pop...
方法。
您可能还希望覆盖替换整个堆栈时调用的setViewControllers:animated:
方法。
覆盖这些方法会使委托自由地被其他类使用。
答案 1 :(得分:0)
也许您可以在UINavigationControllerDelegate
中实施CustomNavigationController
并添加以下功能:
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
}
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
}