如何在导航栏中添加 3 个按钮并将这些按钮转发到其他屏幕或视图控制器?

How can i add 3 buttons in the navigation bar and those buttons forward to other screens or view controllers?

有人可以告诉我如何在导航栏中显示 3 个按钮并在所有屏幕或视图控制器中显示吗?我想在单个 class 中进行此操作,并在所有视图控制器中调用 class。我不知道怎么用这个。

创建一个名为 BaseVC 的 Class。这将是您的 BaseViewController class。自定义它并以编程方式将 3 个按钮添加到其导航栏。

现在,在每个其他视图控制器中扩展这个 class,瞧,你已经完成了。

您可以添加将被视为全局视图的容器视图。

这是您可以使用的方法

导航按钮class:

import Foundation
import UIKit

protocol navProtocol : class {
    func button1()
    func button2()
    func button3()
}

class navButtons
{
    var navBtn1 = UIBarButtonItem()
    var navBtn2 = UIBarButtonItem()
    var navBtn3 = UIBarButtonItem()
    var navProtocolObj : navProtocol?

    static var shared = navButtons()

    func createButtonView() -> (UIBarButtonItem,UIBarButtonItem,UIBarButtonItem)
    {
        navBtn1 = UIBarButtonItem(title: "btn1", style: UIBarButtonItemStyle.plain, target: self, action: #selector(navButtons.button1Action(sender:)))
        navBtn2 = UIBarButtonItem(title: "btn2", style: UIBarButtonItemStyle.plain, target: self, action: #selector(navButtons.button2Action(sender:)))
        navBtn3 = UIBarButtonItem(title: "btn3", style: UIBarButtonItemStyle.plain, target: self, action: #selector(navButtons.button3Action(sender:)))

        return (navBtn1,navBtn2,navBtn3)
    }


    @objc func button1Action(sender:UIBarButtonItem){
        navProtocolObj?.button1()
    }
    @objc func button2Action(sender:UIBarButtonItem){
        navProtocolObj?.button2()
    }
    @objc func button3Action(sender:UIBarButtonItem){
        navProtocolObj?.button3()
    }
}

在您希望执行所有这些操作的目标中

 import UIKit

class SourceVC: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        let buttonAdded = navButtons.shared.createButtonView()
        navButtons.shared.navProtocolObj = self
        self.navigationItem.rightBarButtonItems = [buttonAdded.0,buttonAdded.1,buttonAdded.2]
    }

}

extension SourceVC : navProtocol {
    @objc func button1() {
        print("Button 1 Tapped")
    }

    func button2() {
        print("Button 2 Tapped")
    }

    func button3() {
        print("Button 3 Tapped")
    }    
}

上面的模拟器输出:

上面的控制台输出: