我有一个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