Bha*_*iya 46 selector uibarbuttonitem ios swift swift3
这是我以前用过的,
var barButtonItem = UIBarButtonItem(image: backImgs, style: UIBarButtonItemStyle.plain, target: self, action: Selector("menuButtonTapped:"))
Run Code Online (Sandbox Code Playgroud)
但是Swift 3有一些语法更改.提前感谢.
Ton*_*ent 103
例如: -
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
Run Code Online (Sandbox Code Playgroud)
fla*_*me3 55
总结Swift 3中最常用的方法,用于向barButton添加动作.
巴布通与文本
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
Run Code Online (Sandbox Code Playgroud)BarButton有自己的形象
navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named:"add"), style: .plain, target: self, action: #selector(addTapped))
Run Code Online (Sandbox Code Playgroud)BarButton与系统图像
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
Run Code Online (Sandbox Code Playgroud)Onu*_*hin 31
如果有人使用customView
:
barButtonItem.customView?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(onBarButtonItemClicked)))
Run Code Online (Sandbox Code Playgroud)
Nir*_*v D 14
您只需selector
要从Swift 3 更改语法,您需要在函数调用中指定方法的第一个参数名称,因此请更改您的选择器.
#selector(menuButtonTapped(sender:))
Run Code Online (Sandbox Code Playgroud)
你的方法应该是这样的.
func menuButtonTapped(sender: UIBarButtonItem) {
}
Run Code Online (Sandbox Code Playgroud)
小智 12
适用于iOS 10.1的Swift 3上的一行代码:
navigationController?.navigationBar.topItem?.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: nil)
Run Code Online (Sandbox Code Playgroud)
let barButtonItem = UIBarButtonItem(image: UIImage(named: "backImgs"),
style: .plain,
target: self,
action: #selector(menuButtonTapped))
// Adding button to navigation bar (rightBarButtonItem or leftBarButtonItem)
self.navigationItem.rightBarButtonItem = barButtonItem
// Private action
@objc fileprivate func menuButtonTapped() { // body method here }
Run Code Online (Sandbox Code Playgroud)
如果有人正在寻找一种在现有按钮上设置操作的方法 (Swift 5):
if let leftBarButtonItem = navigationItem.leftBarButtonItem {
leftBarButtonItem.target = self
leftBarButtonItem.action = #selector(onBack(_:))
}
@IBAction func onBack(_ sender: AnyObject) {
_ = navigationController?.popViewController(animated: true)
}
Run Code Online (Sandbox Code Playgroud)
为barbutton项目创建扩展。
extension UINavigationItem {
func addSettingButtonOnRight(){
let button = UIButton(type: .Custom)
button.setTitle("setting", forState: .Normal)
button.titleLabel?.font = UIFont.systemFontOfSize(15.0)
button.layer.cornerRadius = 5
button.backgroundColor = UIColor.grayColor()
button.frame = CGRect(x: 0, y: 0, width: 100, height: 25)
button.addTarget(self, action: #selector(gotSettingPage), forControlEvents: UIControlEvents.TouchUpInside)
let barButton = UIBarButtonItem(customView: button)
self.rightBarButtonItem = barButton
}
func gotSettingPage(){
}
}
Run Code Online (Sandbox Code Playgroud)
并从viewDidLoad()调用它
self.navigationItem.addSettingButtonOnRight()
Run Code Online (Sandbox Code Playgroud)
对于Swift 4 add in viewDidLoad
:
navigationItem.rightBarButtonItem = UIBarButtonItem(
barButtonSystemItem: UIBarButtonSystemItem.add,
target: self,
action: #selector(addTransaction)
)
Run Code Online (Sandbox Code Playgroud)
在Swift 3中,您可以像这样添加UIBarButtonItem,
let addButton = UIBarButtonItem(image:UIImage(named:"your_icon_name"), style:.plain, target:self, action:#selector(YourControllerName.buttonAction(_:)))
addButton.tintColor = UIColor.white
self.navigationItem.rightBarButtonItem = addButton
Run Code Online (Sandbox Code Playgroud)
然后像这样处理按钮动作
func buttonAction(_ sender: UIBarButtonItem) {
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
归档时间: |
|
查看次数: |
73590 次 |
最近记录: |