我了解如何将UITableView
设置为编辑模式,以及如何动态创建编辑按钮:
override func viewDidLoad() {
tableView.allowsMultipleSelectionDuringEditing = true
tableView.setEditing(false, animated: false)
navigationItem.leftBarButtonItem = editButtonItem()
}
但是当我点击编辑按钮时,我想在导航栏上显示一个新按钮(即'加上' /'添加'按钮)。要做到这一点,我想我需要创建一个IBAction
,但我不知道如何将editButtonItem()
链接到一个动作。有什么想法吗?
答案 0 :(得分:2)
好的,非常感谢Ahmed和vadian的评论,但我的工作是:
override func setEditing(editing: Bool, animated: Bool) {
// Toggles the edit button state
super.setEditing(editing, animated: animated)
// Toggles the actual editing actions appearing on a table view
tableView.setEditing(editing, animated: true)
if (self.editing) {
navigationItem.rightBarButtonItem =
UIBarButtonItem(barButtonSystemItem: .Add, target: self,
action: #selector(clickMe))
} else {
// we're not in edit mode
let newButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil)
navigationItem.rightBarButtonItem = newButton
}
}
func clickMe()
{
print("Button Clicked")
}
当按下编辑按钮(并从Edit - >翻转并再次返回)时,将执行IF / ELSE语句中的代码。
答案 1 :(得分:1)
您可以通过将视图控制器中定义的新函数指定给其action属性来替换editButtonItem()的默认操作。
editButtonItem().action = #selector(yourCustomAction(_:))
func yourCustomAction(sender: UIBarButtonItem) {}