大佬教程收集整理的这篇文章主要介绍了ios – 常用导航按钮动作另一个类,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@objc extension UIViewController { @objc func setBarButtonItem(titleLabel: String) { let view = UIView.init(frame: CGRect.init(x: 0,y: 0,width: 200 + 4,height: 38)) let Nextbtn = UIButton(type: .custom) Nextbtn.frame = CGRect(x: 0,width: 30,height: 30) Nextbtn.addTarget(self,action: #SELEctor(NextButtonClicked),for: .touchUpInsidE) view.addSubview(Nextbtn) self.navigationItem.setLeftBarButton(UIBarButtonItem(customView: view),animated: truE) /* @objc func NextButtonClicked() { }*/ } }
呼叫控制器—> setBACkBarButton( “你好……”)
如果我在这个类上创建了按钮动作方法,则调用Button.但是我想在这个调用Calling Controller类上制作按钮动作方法func NextButtonClicked(),或者我们可以访问这个类上的按钮动作的任何方法.
@objc func NextButtonClicked() { }
BaseViewController:
import UIKit class BaseViewController: UIViewController { typealias CompletionBarButtonClicked = (()-> Void) var completionBarItemClicked:CompletionBarButtonClicked? override func viewDidLoad() { super.viewDidLoad() } @objc func setBarButtonItem(titleLabel: String,completion :@escaping CompletionBarButtonClicked) { self.completionBarItemClicked = completion let view = UIView.init(frame: CGRect.init(x: 0,height: 38)) let Nextbtn = UIButton(type: .custom) Nextbtn.frame = CGRect(x: 0,height: 30) Nextbtn.addTarget(self,for: .touchUpInsidE) view.addSubview(Nextbtn) self.navigationItem.setLeftBarButton(UIBarButtonItem(customView: view),animated: truE) } @objc func NextButtonClicked() { if let completionHandler = completionBarItemClicked{ completionHandler() } } }
示例ViewController:
import UIKit class ViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. self.setBarButtonItem(titleLabel: "test") { /// your action There } } }
以上是大佬教程为你收集整理的ios – 常用导航按钮动作另一个类全部内容,希望文章能够帮你解决ios – 常用导航按钮动作另一个类所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。