我试图在我的NavigationController中获取当前ViewController的索引。
问题是navigationController.viewControllers是AnyObject类型,现在我收到错误无法调用' find'使用类型的参数列表(AnyObject,UIViewController)。
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
var index = find(navigationController.viewControllers, viewController)
}
我如何解决这个问题,如何在AnyObject数组中获取索引?
答案 0 :(得分:0)
出现此问题是因为find
函数不知道如何将AnyObject
与UIViewViewController
进行比较。尽管navigationController.viewControllers
[AnyObjects]
数组不应包含除UIViewController
个实例以外的任何内容,但编译器并不知道。我们可以通过将数组(使用as!
)转换为[UIViewController]
来帮助它。
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
var index = find(navigationController.viewControllers as! [UIViewController], viewController)
}