Swift如何在AnyObject

时间:2015-09-15 09:32:39

标签: ios arrays swift

我试图在我的NavigationController中获取当前ViewController的索引。

问题是navigationController.viewControllers是AnyObject类型,现在我收到错误无法调用' find'使用类型的参数列表(AnyObject,UIViewController)。

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
    var index = find(navigationController.viewControllers, viewController)
}

我如何解决这个问题,如何在AnyObject数组中获取索引?

1 个答案:

答案 0 :(得分:0)

出现此问题是因为find函数不知道如何将AnyObjectUIViewViewController进行比较。尽管navigationController.viewControllers [AnyObjects]数组不应包含除UIViewController个实例以外的任何内容,但编译器并不知道。我们可以通过将数组(使用as!)转换为[UIViewController]来帮助它。

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
    var index = find(navigationController.viewControllers as! [UIViewController], viewController)
}