将动作添加到UIBarButtonItem Swift
问题描述:
按钮是在故事板中创建的,我想添加一个动作。将动作添加到UIBarButtonItem Swift
self.cancel.action = NSSelectorFromString("cancel:")
func cancel(sender: UIBarButtonItem) ->() {
}
这不行。由于
答
看我的。
-
将UIButton添加到UIBarbuttonitem。
self.navigationController?.navigationBarHidden = false //making a button var button: UIButton = UIButton() button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal) button.frame = CGRectMake(0, 0, 25, 25) button.targetForAction("actioncall", withSender: self) button.addTarget(self, action: "actioncall", forControlEvents: UIControlEvents.TouchUpInside) //making a UIBarbuttonItem on UINavigationBar var rightItem:UIBarButtonItem = UIBarButtonItem() rightItem.customView = button self.navigationItem.rightBarButtonItem = rightItem
-
一个初始化的UIBarButtonItem
let rightNavItem = UIBarButtonItem(image: UIImage(named: "search1x"), landscapeImagePhone: nil, style: UIBarButtonItemStyle.Plain, target: self, action: "actioncall") navigationItem.rightBarButtonItem = rightNavItem
-
OR
let rightNavItem = UIBarButtonItem() rightNavItem.action = "action call" //Anticipated Method on clicking uibarbuttonitem func actioncall(){ }
答
就在您的SWIFT类中创建一个功能类似于下面
@IBAction func cancel() {
// your code
}
,并且被Ctrl拖动从按钮到您的视图控制器,它在故事板连接。
答
@IBAction func action() {
// your code
}
var button = UIButton.buttonWithType(UIButtonType.System) as UIButton
button.frame = CGRectMake(100, 100, 100, 50)
button.backgroundColor = UIColor.greenColor()
button.setTitle("Button", forState: UIControlState.Normal)
button.addTarget(self, action: "action", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
答
或者,如果选择在不同的类
let barBtn = UIBarButtonItem(title: nil, style: UIBarButtonItemStyle.Plain, target: self, action: #selector(CustomToolbarItemsClass.testSelector))
//This is in CustomToolbarItemsClass class
@objc static func testSelector(){
print("Hello!")
}
欢迎来到SOF。确保你接受答案,如果它帮助你。 – Mundi 2014-08-31 09:52:51