2016-06-24 3 views
0

у меня есть пользовательский класс клеток под названием CurrentFilesCell с кодом настройки нижеSwift Пользовательские TableViewCell обыкновение показывать этикетки

class CurrentFileCell: UITableViewCell { 

@IBOutlet weak var nameLabel: UILabel! 
@IBOutlet weak var dateLabel: UILabel! 
@IBOutlet weak var statusImage: UIImageView! 


var currentContent: AircraftContent! { 
    didSet{ 
     setStyles(Constants.appStyleSetting) 

     nameLabel.text = currentContent.contentName 
     dateLabel.text = currentContent.contentStatus 

    } 
} 

В моей CurrentFilesViewController я просто установить его в cellForRowAtIndexPath

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 1 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("CurrentFileCell", forIndexPath: indexPath) as? CurrentFileCell 
    cell?.currentContent = content 

    return cell! 
} 

Я считаю, что у меня есть все правильно связано, так как я сделал что-то подобное в других классах, как с ячейками, так и с vc. Моя проблема в том, что при запуске ничего не загружается, текст по умолчанию отсутствует и не обновляется после того, как он должен быть установлен. Вот изображение, показывающее связь

http://imgur.com/qlK4d5O

Я действительно не знаю, что происходит и почему это не работает. Я попытался удалить его и воссоздать, но я должен что-то упустить.

EDIT Вот изображение отладчика, показывающее, что текущий элемент ячейки не пуст. Это происходит прямо перед возвратной ячейкой! выполняется.

http://imgur.com/O250qXq

+0

Во-первых, если код не сбой, вы должны использовать отладчик, чтобы выполнить свой код, и убедитесь, что верное количество разделов, правильное количество строк в разделе и правильное содержимое возвращено. Во-вторых, попробуйте перезагрузить табличное представление, чтобы убедиться, что информация правильно установлена ​​и что это просто не проблема с жизненным циклом 'UITableViewCell' (т. Е. Выходы ячейки не могут быть установлены в' tableView: cellForRowAtIndexPath: '). В-третьих, отредактируйте свой вопрос, чтобы включить всю эту информацию. –

+0

Я добавил еще одно изображение, чтобы показать, что оно не пусто – John511

+0

ОК. Добавьте изображение фактической ячейки во время выполнения и используйте отладчик вида, чтобы проверить ячейку, если ваши ограничения неверны, и вытеснили ярлыки/изображения за кадром. –

ответ

0

ли вы регистрируете эту ячейку в виде таблицы? Если не чем dqueRqusableCellWithIdentifier возвратит ноль значения ... Вы можете зарегистрировать его с помощью функции UITableView «registerNib: forCellReuseIdentifier

+0

Не совсем уверен, что вы подразумеваете под этим. Вы можете объяснить больше? – John511

+0

Когда вы создаете пользовательскую ячейку, у вас есть две возможности: 1) ячейка прототипа 2) с использованием файла XIB Используя второй подход, вам необходимо зарегистрировать свою ячейку в виде таблицы (так что ваше представление в таблице известно, откуда взять пользовательский интерфейс для такой ячейки). Это имеет смысл сейчас? Если нет, я могу дать более глубокое объяснение. – Volodymyr

+0

Я просто использую прототип ячейки, поэтому не уверен, что это применимо. – John511

0

В раскадровке, вы должны определить подкласс ячейки прототипа таблицы.

И тогда вы должны определить идентификатор ячейки таблицы прототипов как «CurrentFileCell».

Затем вы покажете содержимое таблицы, когда приложение будет запущено.

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