![](/img/trans.png)
[英]Pass String from UINavigationController to ViewController
[英]Casting a viewController extracted from an UINavigationController in Swift
我在UINavigationController
有UIViewController
。 该视图控制器实现协议。
我正在尝试获取导航堆栈的第一个控制器并将其强制转换为:
if let vc = _navigationStack.viewControllers?[0] as? ExplorerInterface {
return vc
}
但我收到错误消息: Cannot downcast from 'AnyObject?' to non-@objc protocol type 'ExplorerInterface'
Cannot downcast from 'AnyObject?' to non-@objc protocol type 'ExplorerInterface'
。
我正在寻找一种在不将@objc
关键字添加到我的协议的情况下解决此问题的方法(因为该协议包含诸如元组之类的swift类型,并且@objc
关键字与Swift类型不兼容)
形成苹果文件:
仅当您的协议标记有@objc属性时,才可以检查协议一致性。 即使您不与Objective-C互操作,如果您希望能够检查协议一致性,也需要使用@objc属性标记协议。
检查Swift协议
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.