Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中强制转换从UINavigationController提取的viewController_Ios_Objective C_Uinavigationcontroller_Swift - Fatal编程技术网

Ios 在Swift中强制转换从UINavigationController提取的viewController

Ios 在Swift中强制转换从UINavigationController提取的viewController,ios,objective-c,uinavigationcontroller,swift,Ios,Objective C,Uinavigationcontroller,Swift,我在UINavigationController中有UIViewController。该视图控制器实现一个协议 我正在尝试获取导航堆栈的第一个控制器并将其强制转换为: if let vc = _navigationStack.viewControllers?[0] as? ExplorerInterface { return vc } 但我得到了一个错误:无法从'AnyObject'向下转换为非@objc协议类型'ExplorerInterface' 我正在寻找一种方法来解决此问题,而

我在
UINavigationController
中有
UIViewController
。该视图控制器实现一个协议

我正在尝试获取导航堆栈的第一个控制器并将其强制转换为:

if let vc = _navigationStack.viewControllers?[0] as? ExplorerInterface {
    return vc
}
但我得到了一个错误:
无法从'AnyObject'向下转换为非@objc协议类型'ExplorerInterface'

我正在寻找一种方法来解决此问题,而无需将
@objc
关键字添加到我的协议中(因为此协议包含类似swift类型的元组,并且
@objc
关键字与swift类型不兼容)

表单Apple文档:

只有在协议已标记的情况下,才能检查协议一致性 使用@objc属性。即使您没有与 Objective-C,您需要使用@objc属性标记协议 如果您希望能够检查协议一致性

检查