如果选择override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var whatIsSelected: String = ""
// Get Cell Label
let indexPath = tableView.indexPathForSelectedRow()
let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!
whatIsSelected = currentCell.textLabel!.text!
// Unmark selected
if (currentCell.accessoryType == UITableViewCellAccessoryType.Checkmark) {
currentCell.accessoryType = UITableViewCellAccessoryType.None
// Mark selected category
} else {
currentCell.accessoryType = UITableViewCellAccessoryType.Checkmark
}`
中的最小一行,我想启用segue按钮。如果没有选择/标记行,也应该禁用该按钮。
目前我有这个代码而且我只能启用它但我不能再禁用它了:
a0 b0 c0 d0 e0
a1 b1 c1 d1 e1
a2 b2 c2 d2
a3 b3 c3 d3 e3
答案 0 :(得分:1)
更新:
取代我的回答。这是一个工作原型ViewController:
import UIKit
class ViewController: UITableViewController {
@IBOutlet weak var testButton: UIButton!
let testData = ["One", "Two", "Three", "Four", "Thirty two :)"]
override func viewDidLoad() {
tableView.allowsMultipleSelection = true
testButton.enabled = false
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let currentCell = tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell!
currentCell.accessoryType = UITableViewCellAccessoryType.Checkmark
testButton.enabled = true
}
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
let currentCell = tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell!
currentCell.accessoryType = UITableViewCellAccessoryType.None
let selectedRows = tableView.indexPathsForSelectedRows() as? [NSIndexPath]
if selectedRows == nil {
testButton.enabled = false
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return testData.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let data = testData[indexPath.row]
let cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "CELL")
cell.textLabel?.text = data
return cell
}
}