Swift 使用UIViewController作为可选参数的默认值,但我得到;X没有名为“Y”的成员;错误
所以我一直在享受默认参数值的乐趣Swift 使用UIViewController作为可选参数的默认值,但我得到;X没有名为“Y”的成员;错误,swift,default-value,optional-parameters,Swift,Default Value,Optional Parameters,所以我一直在享受默认参数值的乐趣 class containerViewController: UIViewController { var detailView:UIViewController? override func viewDidLoad(){ super.viewDidLoad() detailView = anotherViewController() } func hideDetailView(vc:UIVie
class containerViewController: UIViewController {
var detailView:UIViewController?
override func viewDidLoad(){
super.viewDidLoad()
detailView = anotherViewController()
}
func hideDetailView(vc:UIViewController? = detailView){ // <- THIS LINE
// code
}
}
我一直在网上阅读,但我似乎不知道如何解决这个问题
我想要的是能够使用hideDetailView()
,如果我将特定视图控制器作为参数发送给该函数,它将隐藏该特定视图控制器。如果我不发送任何参数,它只会隐藏保存在detailView
参数中的当前视图控制器
如何实现这一点?您可以使用
nil
作为默认值,并检查正文中是否有nil
func hideDetailView(vc:UIViewController? = nil){ // <- THIS LINE
let vc_ = vc ?? detailView
// code
}
func hideDetailView(vc:UIViewController? = nil){ // <- THIS LINE
let vc_ = vc ?? detailView
// code
}
// passing `nil` as Optional<UIViewController>
let vc:UIViewController? = nil
container.hideDetailView(vc: vc)
// use default value
container.hideDetailView()
func hideDetailView(vc:UIViewController?? = nil){
let vc_ /*: UIViewController? */ = vc ?? detailView
// code
}