Ios Swift通用变量
我有一个协议,我希望有一个UIViewController类型的变量来实现mu协议。如果我尝试做以下事情:Ios Swift通用变量,ios,generics,swift,Ios,Generics,Swift,我有一个协议,我希望有一个UIViewController类型的变量来实现mu协议。如果我尝试做以下事情: var delegate:UIViewController<BouncingMenuDelegate>? var委托:UIViewController? 我收到错误消息,UIViewController是非泛型类型。然后问题是如何访问我们在Objective-C中用于访问代表的模型?提前谢谢你 如果类实现了一个协议,那么您不关心它实际上是哪个类。这应该起作用: var de
var delegate:UIViewController<BouncingMenuDelegate>?
var委托:UIViewController?
我收到错误消息,UIViewController是非泛型类型。然后问题是如何访问我们在Objective-C中用于访问代表的模型?提前谢谢你 如果类实现了一个协议,那么您不关心它实际上是哪个类。这应该起作用:
var delegate: BouncingMenuDelegate?
不能像在Swift中那样声明变量类型 解决问题的最简单方法是将
UIViewController
方法/属性添加到bountingmenudelegate
要求:
@objc protocol BouncingMenuDelegate {
// Delegate methods
func boudcingMenu(bouncingMenu:BouncingMenu, didSelectItemAtIndex index:Int)
// required methods/properties from UIViewController
var view:UIView { get }
var navigationController:UINavigationController? { get }
func presentViewController(viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)?)
}
class BouncingMenu:UIView {
weak var delegate:BouningMenuDelegate?
}
是的,我试过这个,但它不起作用。实际上,我需要访问一个实现我的协议的UIViewController实例。这是一个黑客行为,应该注意到这一点。