我什么时候应该使用Target和零动作?另一方面,我应该何时使用Action和nil Target,何时应该使用Action和Target?
let rightButton = UIBarButtonItem(title: "Done",style: .done,target: nil,action: nil)
解决方法
通常,您会同时看到目标和行动.
目标和动作用于指代特定方法.在您的代码段中,您将创建一个UIBarButtonItem. UIBarButtonItem需要知道在点击它时应该调用什么方法.
你怎么知道它叫哪种方法?
“只需传递方法参考”你可能会说:
let rightButton = UIBarButtonItem( title: "Done",methodToCall: self.myMethod)
不幸的是,这只适用于swift. UIBarBUttonItem是一个客观的C API,因此无法使用此方法.
在目标C中,选择器表示方法,但它们不存储调用方法的对象.这就是为什么我们需要额外的目标参数.它指定应该调用该方法的对象.另一方面,操作指定要调用的方法.
在这里,我们想要调用self.myMethod.调用该方法的对象是self,被调用的方法是myMethod.大!现在让我们通过这些!
let rightButton = UIBarButtonItem( title: "Done",target: self,action: #selector(myMethod))