【发布时间】:2017-03-06 11:49:32
【问题描述】:
我正在尝试与 Swift 3 中的 UIViewController 进行比较,但有一些错误
extension UINavigationController
{
func myPopToViewController(viewController:UIViewController, animated:Bool) -> UIViewController? {
var arrViewControllers:[UIViewController] = []
arrViewControllers = self.viewControllers
for vc:UIViewController in arrViewControllers {
if(vc.isKind(of: viewController) ) // This Line gives me error
{
return (self.navigationController?.popToViewController(vc, animated: animated)?.last)!
}
}
return nil
}
}
/Users/varunnaharia/Documents/Projects/appname/appname/Public/UINavigationController+Extra.swift:18:30:无法将“UIViewController”类型的值转换为预期的参数类型“AnyClass”(又名“AnyObject.Type” )
如果尝试使用
if(vc is viewController)
它给了
/Users/varunnaharia/Documents/Projects/appname/appname/Public/UINavigationController+Extra.swift:18:22:使用未声明的类型'viewController'
我通过这个来调用它
self.navigationController?.popOrPopToViewController(viewController: MyUIViewController(), animated: false)
【问题讨论】:
-
如果 vc 是 arrViewControllers { } 试试这个
-
请解释一下它是如何工作的?它给出了同样的错误......
-
试试
if (vc is UIViewController) -
if vc is UIViewController { //vc 是类类型 UIViewController }
-
试试这个它会为你工作
if(vc.isKind(of: viewController.classForCoder) ) { return (self.popToViewController(vc, animated: animated)?.last)! }.
标签: ios swift uiviewcontroller swift3 uinavigationcontroller