我有一个问题是在导航栏中添加一个右键..
我有两种观点:观看A和观看B
在我使用self.navigationController!.pushViewController
显示视图B后,我添加了一个导航栏来查看A.
在自动导航栏左侧显示一个后退按钮,很不错。但现在我想在视图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
你能帮助我吗,谢谢你!
答案 0 :(得分:29)
当您使用这种语言时,Vahan Babayan的答案的Swift版本是:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: "rightButtonAction:"
)
self.navigationItem.rightBarButtonItem = rightButtonItem
将在self上调用以下方法:
func rightButtonAction(sender: UIBarButtonItem)
请注意,所有这些都可以使用故事板以图形方式设置,方法是将条形按钮项拖动到导航项并右键单击以设置目标操作。
自Swift 3和4以来的一个小更新:编译器现在可以检查选择器名称,以编程方式设置目标操作时防止打字错误。所以应该真正使用:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: #selector(rightButtonAction(sender:))
)
答案 1 :(得分:4)
您可以将以下代码添加到B控制器的viewDidLoad
方法。
UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title"
style:UIBarButtonItemStyleDone
target:self
action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButtonItem;
答案 2 :(得分:2)
- (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
}
答案 3 :(得分:0)
在viewDidLoad方法
中添加以下代码UIBarButtonItem *flipButton = [[UIBarButtonItem alloc]
initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
这会在右侧添加一个标题为Flip的按钮,该按钮调用方法:
-(IBAction)flipView
答案 4 :(得分:0)
添加导航栏按钮项的Swift代码:
方法1 (当您想使用条形按钮系统项目时)
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
方法2 (当你想给自己的标题按钮时)
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
从iOS 5开始,它允许您在导航栏的两侧添加多个按钮。像这样:
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]
答案 5 :(得分:0)
在 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!")
}
}
)