iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 常用导航按钮动作另一个类大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我为所有View控制器制作了通用导航栏.但是我需要按下那些调用我正在调用公共导航栏的操作

@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而不是扩展,并允许所有ViewControllers继承此BaseViewController

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,请注明来意。