我有一个包含自定义单元格类和导航控制器的表。我在导航控制器中添加了一个Edit按钮,并为View Controller创建了一个IBAction:
@IBAction func doEdit(sender: AnyObject) {
self.tableView.setEditing(true, animated: true)
}
Xcode告诉我:
Cannot invoke 'setEditing' with an argument list of type '(Bool, animated: Bool)'
我还在viewDidLoad方法中尝试了navigationItem.rightBarButtonItem = editButtonItem()
,但是那里没有显示删除图标。
编辑:我为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()
}
}
答案 0 :(得分:0)
确保您的tableView已从Interface Builder
作为IBOutlet
连接。
您可以通过从IB拖动到您的代码来实现。
答案 1 :(得分:0)
现在可以使用了,我删除了插座并创建了一个名为tableView
的新插座。