使用 tabbarViewController.selectedViewContreller 没有推送下一个视图



我想使用:

self.tabBarController?.selectedViewController?.navigationController?.pushViewController(vc, animated: false)

,但这在Swift中不起作用。但是如果我使用:

[self.tabBarController.selectedViewController pushViewController:nextVC animated:NO]

在Objective-C中。为什么?

尝试此

tabBarController?.selectedView?.pushViewController(nextVC, animated: false)

在您的目标c示例中,tabBarController.selectedViewController被认为是UINavigationController实例,可以根据您的ViewController层次结构正确正确。

但是,您的Swift示例假设tabBarController.selectedViewController嵌入在与目标C版本不匹配的UINavigationController实例中。访问NavigationController将返回NIL,因为您正在向导航控制器询问其父型导航controller(不存在(。

您的迅速示例可以像

一样修复
guard let navigationController = tabBarController.selectedViewController as? UINavigationController else {
  return
}
navigationController.pushViewController(vc, animated: false)

最新更新