popToRootViewController不返回弹出的UIViewControllers

时间:2017-05-18 22:37:27

标签: ios swift uinavigationcontroller

我用popToRootViewController方法发现了一些奇怪的行为。 根据它的声明,它应该返回弹出的viewControllers,但如果你在pushViewController

期间调用它,那就不行了
class HomeTabNavigationController: UINavigationController {
    override func popToRootViewController(animated: Bool) -> [UIViewController]? {
        let viewControllers = super.popToRootViewController(animated: animated)
        if let vcs = viewControllers, vcs.count > 0 {
            print("POPPED SOMETHING")
        }
        return viewControllers
    }
}

如果动画在我调用之前完成,这是按预期工作的。 但是如果我在动画过程中仍然调用此方法,它将返回nil,但在稍微延迟后它仍然会弹出到根视图控制器。

我准备了一个问题的快速演示:

https://github.com/grzegorzkrukowski/UINavigationControllerBug

当然我的真实应用程序中有不同的用例,但问题是一样的。 我错过了什么,或者它只是一个错误?

0 个答案:

没有答案