2015-11-12 4 views
0

У меня есть вид (не контроллер вида), который появляется, когда я нажимаю кнопку.Загрузить UITableViewCell из файла xib в UITableView в представлении

На этом виде у меня есть UIButton и UITableView. Я хочу использовать UITableViewCell, созданный в файле xib.

Так что я создал свой класс клеток:

class PickerViewCell: UITableViewCell { 

    @IBOutlet weak var flagImageView: UIImageView! 
    @IBOutlet weak var codeLabel: UILabel! 
    @IBOutlet weak var nameLabel: UILabel! 

    func setCell(myObject: myObject) { 
     flagImageView.image = UIImage(named: myObject.code) 
     codeLabel.text = myObject.code 
     codeLabel.font = myObject.kPickerViewCodeFont 
     nameLabel.text = myObject.name 
     nameLabel.font = myObject.kPickerViewNameFont 
    } 
} 

Мой XIB файл:

enter image description here

Здесь я не ставил владельца XIb (я попытался с а), Я поместил пользовательский класс для UITableViewCell и не использовал идентификатор повторного использования (я тоже попытался).

В функции инициализации моего зрения (тот, содержащий табличное), я следующее:

let nib = UINib(nibName: "PickerViewCell", bundle: nil) 
tableView.registerNib(nib, forCellReuseIdentifier: "cell") 

И, наконец, я реализовать метод:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! PickerViewCell 

    let myObject = myObjects[indexPath.row] 
    cell.setCell(myObject) 

    return cell 
} 

Когда я хочу показать (создать) мой взгляд, отладчик стоп на

let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! PickerViewCell 

и я получаю следующее сообщение об ошибке:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x7f9b934d8c70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key codeLabel.' 

Что случилось?

EDIT:

enter image description here

+0

Если вы не меняете шрифт много, лучше не передавать их слишком часто – zcui93

ответ

0

Проверьте соединение @IBOutlet weak var codeLabel: UILabel! с IB в PickerViewCell. Попробуйте снова подключить его.

+0

Я сделал это несколько раз и просто сделал это снова сейчас. Все такой же. – Nico

+0

«nibName:« PickerViewCell »' прав? Попробуйте удалить соединение и какую ошибку вы получите? – anhtu

+0

@ Нико, и вы должны очистить проект и построить снова. – anhtu

Смежные вопросы