如何在导航栏中添加右键?

How to add right button in the navigation bar?

我有一个关于在导航栏中添加右键的问题..

我有两个视图:视图 A 和视图 B

在我使用 self.navigationController!.pushViewController 显示视图 B 后,我将导航栏添加到视图 A。

自动视图B的导航栏左侧显示一个后退按钮,不错。但现在我想在视图 B 的导航栏右侧添加一个按钮.. 我已经尝试了一些答案,但它不起作用...... 我试过喜欢的答案: 1) https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-bar-button-to-a-navigation-bar 2)http://blog.apoorvmote.com/add-multiple-bar-button-item-navigation-bar/?lang=fr

能不能帮帮我,谢谢!

您可以将以下代码添加到 B 控制器的 viewDidLoad 方法中。

UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title" 
                                                                    style:UIBarButtonItemStyleDone 
                                                                    target:self 
                                                                    action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButtonItem;

在viewDidLoad方法中添加如下代码

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] 
                               initWithTitle:@"Flip"                                            
                               style:UIBarButtonItemStyleBordered 
                               target:self 
                               action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;

这会在右侧添加一个按钮,标题为 Flip,它会调用以下方法:

-(IBAction)flipView

Vahan Babayan 的回答的 Swift 版本,您似乎使用这种语言,是:

let rightButtonItem = UIBarButtonItem.init(
      title: "Title", 
      style: .Done, 
      target: self, 
      action: "rightButtonAction:"
)

self.navigationItem.rightBarButtonItem = rightButtonItem

将在自身上调用以下方法:

func rightButtonAction(sender: UIBarButtonItem)

请注意,所有这些 都可以使用情节提要 以图形方式设置,方法是将一个条形按钮项拖到您的导航项并右键单击以设置目标操作。


自 Swift 3 和 4 发布以来的一个小更新:编译器现在可以检查选择器名称,防止在以编程方式设置目标操作时出现拼写错误。所以真正应该使用:

let rightButtonItem = UIBarButtonItem.init(
      title: "Title", 
      style: .Done, 
      target: self, 
      action: #selector(rightButtonAction(sender:))
)
- (void)viewDidLoad {

    [super viewDidLoad];
    UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Right Button" style:UIBarButtonItemStyleDone target:self action:@selector(rightBtnClick)];
    self.navigationItem.rightBarButtonItem = rightBtn;
}

-(void)rightBtnClick{
    // code for right Button

}

Swift添加导航栏按钮项的代码:

方法一(当你想使用条形按钮系统项目时)

navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))

方法二(当你想给按钮赋予自己的标题时)

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))

从 iOS5 开始,它允许您在导航栏的任一侧添加多个按钮。像这样:

let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
let display = UIBarButtonItem(title: "Display", style: .plain, target: self, action: #selector(playTapped))

navigationItem.rightBarButtonItems = [add, display]

尝试使用此代码 Swift UI :

 .navigationBarItems(
   leading:
     HStack {
       Button("About") {
         print("About tapped!")
       }
       Button("Call") {
         print("Call tapped!")
       }
     },
                                    
   trailing:
     HStack {
       Button("Settings") {
         print("Settings tapped!")
       }
       Button("Contacts") {
         print("Contacts tapped!")
       }           
     }
  )