如何检查我的NavigationController子类是否已推送VC&杀出?

时间:2016-11-15 16:53:21

标签: ios objective-c uiview uinavigationcontroller

这个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函数工作正常。

2 个答案:

答案 0 :(得分:1)

一种选择是覆盖pushViewControllerpopViewController方法。

- (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) {

    }