我有一個UITableViewController
和一個自定義TableViewCell
並在該UITableViewCell內有一個UISwitch。該交換機連接到一個IBAction爲,但只要我輕按開關,我得到一個錯誤:自定義UITableViewCell中的UISwitch IBAction導致錯誤
unrecognised selector sent to instance 0x13ce30a50
SelectFriendsViewController.swift
class SelectFriendsViewController: UITableViewController, SelectorDelegate {
func selectUser(string: String) {
selectedUser = string;
}
.... lots of code removed for simplification.
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell:SelectorTableViewCell = tableView!.dequeueReusableCellWithIdentifier("MyCell", forIndexPath: indexPath) as SelectorTableViewCell;
cell.delegate = self;
}
}
protocol SelectorDelegate {
func selectUser(string: String)
}
class SelectorTableViewCell: UITableViewCell {
@IBOutlet var swUser: UISwitch! = UISwitch();
@IBOutlet var lblUserName: UILabel! = UILabel();
var delegate: SelectorDelegate!
@IBAction func SwitchUser(sender: UISwitch) {
//delegate.selectUser("test");
//even with just this println i get the error
println("test");
}
}
您的代碼似乎正確。我懷疑這可能是IBOutlet和IBAction之間的接線問題。你可以用一個簡單的'println(「test」)'語句替換'delegate.selectUser(「test」)'來測試嗎? – anthonyliao 2014-10-31 02:52:46
我用一個println替換它,並且給了我完全相同的錯誤。但是,正如我所看到的那樣,IBAction似乎已連接到交換機。也就是說,如果我指向IBAction前面的點,故事板上的開關就會點亮。 – Tys 2014-10-31 07:59:47
我更新了我的問題,以便現在解決確切的問題。 – Tys 2014-10-31 10:56:00