如何将实时表格视图选择的单元格计数器作为 UIBarButtonItem
How to have a real time tableview selected cell counter as a UIBarButtonItem
我在尝试添加标题为 "Next(#)" 的 UIBarButtonItem
时遇到困难,其中 # 是一个动态计数器,用于计算用户在 table 视图中选择的单元格数量正在选择他们。跟踪单元格选择的数组已构建并正常工作,但计数未更新;控制台中的打印行按预期工作。我稍后的意图是仅在计数大于零时显示“(#)”,但现在我专注于在每个单元格获得 selected/deselected.
后更新计数
override func viewWillAppear(_ animated: Bool) {
let barButtonCounter = "(\(invitedContacts.count))"
let barButtonItemText = "Next\(barButtonCounter)"
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "\(barButtonItemText)", style: .done, target: self, action: nil)
}
这是我能找到的最接近的 SO thread,但据我所知,它并不完全符合我的要求,至少在视觉上如此 design-wise 但也许完全是用 [=20= 编写的] 我不完全理解,因为我是 swift 的新手。我的偏好是在不导入库的情况下本地构建它。
您只在 viewWillAppear
中调用一次,我建议您创建一个私有函数,将新计数作为参数并更新按钮,然后在每个 didSelect
和 didDeselect
来自 tableView
的委托方法
试试这行
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//your code for your counter
self.navigationItem.rightBarButtonItem = nil
let barButtonCounter = "(\(invitedContacts.count))"
let barButtonItemText = "Next\(barButtonCounter)"
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "\(barButtonItemText)", style: .done, target: self, action: nil)
}
我在尝试添加标题为 "Next(#)" 的 UIBarButtonItem
时遇到困难,其中 # 是一个动态计数器,用于计算用户在 table 视图中选择的单元格数量正在选择他们。跟踪单元格选择的数组已构建并正常工作,但计数未更新;控制台中的打印行按预期工作。我稍后的意图是仅在计数大于零时显示“(#)”,但现在我专注于在每个单元格获得 selected/deselected.
override func viewWillAppear(_ animated: Bool) {
let barButtonCounter = "(\(invitedContacts.count))"
let barButtonItemText = "Next\(barButtonCounter)"
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "\(barButtonItemText)", style: .done, target: self, action: nil)
}
这是我能找到的最接近的 SO thread,但据我所知,它并不完全符合我的要求,至少在视觉上如此 design-wise 但也许完全是用 [=20= 编写的] 我不完全理解,因为我是 swift 的新手。我的偏好是在不导入库的情况下本地构建它。
您只在 viewWillAppear
中调用一次,我建议您创建一个私有函数,将新计数作为参数并更新按钮,然后在每个 didSelect
和 didDeselect
来自 tableView
试试这行
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//your code for your counter
self.navigationItem.rightBarButtonItem = nil
let barButtonCounter = "(\(invitedContacts.count))"
let barButtonItemText = "Next\(barButtonCounter)"
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "\(barButtonItemText)", style: .done, target: self, action: nil)
}