ios - Swift:编辑模式,将 editButtonItem() 链接到 IBAction

标签 ios swift uitableview cocoa-touch

我了解如何将我的 UITableView 设置为编辑模式,以及如何动态创建编辑按钮:

override func viewDidLoad() {
    tableView.allowsMultipleSelectionDuringEditing = true
    tableView.setEditing(false, animated: false)
    navigationItem.leftBarButtonItem = editButtonItem()
}

但是当我点击编辑按钮时,我希望导航栏上出现一个新按钮(即“加号”/“添加”按钮)。为此,我认为我需要创建一个 IBAction,但我不知道如何将 editButtonItem() 链接到操作。有什么想法吗?

最佳答案

好的,非常感谢 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")
}

当按下编辑按钮(并从“编辑”->“完成”翻转并再次返回)时,IF/ELSE 语句中的代码将执行。

关于ios - Swift:编辑模式,将 editButtonItem() 链接到 IBAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187182/

相关文章:

ios - 无法从 ekstore 查询日历中的提醒

ios - '位置管理器(_ :didRangeBeacons:inRegion: )' conflicts with optional requirement method ' locationManager(_:didRangeBeacons:inRegion:)' in protocol

swift - 由于缓冲区不足,从 AVCaptureDataOutputSynchronizerDelegate 中适当释放缓冲区

ios - 检测iPhone是刘海屏还是普通矩形屏以避免导航栏尺寸问题?

ios - 如何创建唯一键形式对象 NSArray 的 NSArray?

ios - 坚持创建事件和格式化日期(Swift - EventKit - OS X)

ios - 如何在 MVVM 模型中使用 MKMapViewDelegate 方法

ios - 搜索结果问题 - Xcode 项目

swift - 无法为自定义 View 设置约束,Swift

ios - 如何让选中的tableview单元格像Vine App一样没有颜色