我有一個帶有自定義單元類和導航控制器的表。我添加了一個編輯按鈕,導航控制器和創建一個IBAction爲到視圖控制器:編輯按鈕用於在Swift中刪除UITableView中的行不起作用
@IBAction func doEdit(sender: AnyObject) {
self.tableView.setEditing(true, animated: true)
}
的Xcode告訴我:
Cannot invoke 'setEditing' with an argument list of type '(Bool, animated: Bool)'
我也試過navigationItem.rightBarButtonItem = editButtonItem()
在viewDidLoad方法,但是,刪除圖標沒有在那裏顯示。
編輯:我爲UITableView創建了一個名爲table
的插座。當輸入self.table.setEditing(true, animated: true)
時,上述錯誤不再顯示,但當點擊編輯按鈕時,應用程序崩潰。下面的代碼:
import UIKit
var arr = ["1", "2", "3"]
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var table: UITableView!
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arr.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CustomCellClass = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomCellClass
cell.cellTitle.text = arr[indexPath.row]
cell.backgroundColor = UIColor(red: 242.0/255.0, green: 157.0/255.0, blue: 48.0/255.0, alpha: 1.0)
return cell
}
@IBOutlet weak var editButton: UIBarButtonItem!
@IBAction func doEdit(sender: AnyObject) {
self.table.setEditing(true, animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
// navigationItem.rightBarButtonItem = editButtonItem()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
self.table.reloadData()
}
}
是你的「'tableView'」作爲一個'IBOutlet'連接到該視圖控制器中的表視圖嗎? –
是的,它被稱爲「表」。請參閱上面更新的問題。 – MJQZ1347