如何区分各种NavigationController?

时间:2018-09-04 06:10:11

标签: ios swift uinavigationcontroller

我在我的应用中使用多个NavigationController

let navViewController = UINavigationController(rootViewController: vc)

将标签分配为

navViewController.navigationBar.tag = 10

&以

获取
if navigationController?.navigationBar.tag == 10 {

代替navigationBar.tag,我们是否不能使用navViewController引用或navigationController.tag进行区分?

1 个答案:

答案 0 :(得分:2)

使用标签区分导航控制器是可以的。为了使代码更具可读性并避免任何可能的错误,可以将标签定义为常量或枚举,然后检查常量值。

另一种方法是为每种情况子类化UINavigationController并检查相应的类:

if let navController = navigationController as? CustomNavigationController {
  //your code
}

子类化将添加到样板中,并使项目更大。因此,如果您不需要在每个导航控制器上进行任何自定义,则可以继续使用标签。