Моя пользовательская ячейка таблицы UITableViewCell отображается в виде пустого списка элементов


В основном у меня есть пользовательский UITableViewCell, который я сделал в своем файле nib. Внутри этого у меня есть несколько ярлыков и все такое, что я хочу иметь возможность редактировать программно. Я назвал свой файл пера "post", и я сделал его владельца файла" post", и я установил его класс В" post " под владельцем файла, а также. Я связал все свои метки внутри моего пера с этим классом:

Пост.h:

#import <Foundation/Foundation.h>

@interface post : UITableViewCell

@property (nonatomic, weak) IBOutlet UILabel *title;
@property (nonatomic, weak) IBOutlet UILabel *authorComments;
@property (nonatomic, weak) IBOutlet UILabel *time;

@end

Пост.М:

#import "post.h"

@implementation post

    @synthesize title = _title;
    @synthesize authorComments = _authorComments;
    @synthesize time = _time;

@end

Изображение файла моего пера:

Введите описание изображения здесь

Итак, теперь все в моем файле пера связано с моим классом post , за исключением для самой ячейки, потому что мне сказали, что я должен связать это с "видом", но я не уверен, как (я пытался связать его с backgroundView, но это не исправило мою проблему). Я также пытался дать фактическому объекту cell сообщение класса, но это не решает мою проблему.

Тогда в моем контроллере у меня есть следующий код:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    // this is the identifier that I gave the table cell within my nib
    static NSString *simpleTableIdentifier = @"post";

    // grabs me a cell to use
    post *cell = (post *) [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil) {
        cell = [[post alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    // sets the text on one of the labels within my cell to something else
    cell.title.text = @"this is a test";

    // returns my customized cell
    return cell;

}

Однако, когда я запускаю свое приложение, я просто получаю это:

Введите описание изображения здесь

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

Если это поможет, вот все мои исходные файлы и мое перо файл:

Https://dl.dropboxusercontent.com/u/7822837/source.zip

3 4

3 ответа:

Вы должны сделать две вещи

В файле xib

Отключите все розетки владельца файла и подключите розетки к объекту пользовательской ячейки

Введите описание изображения здесь

В коде

Загрузите ячейку из nib

if (cell == nil) {

    //cell = [[post alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    cell = [[[NSBundle mainBundle]loadNibNamed:@"post" owner:self options:nil]objectAtIndex:0];
}

Вы должны registerNib: forCellReuseIdentifier: в вашем UITableView, что-то вроде этого:

- (void)viewDidLoad {
   [super viewDidLoad];
    [self.tableView registerNib:[UINib nibWithNibName:@"post" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"post"];
}

Свифт:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.registerNib(UINib(nibName: "post", bundle: NSBundle.mainBundle()), forCellReuseIdentifier: "post")
}

Дайте выход ссылки на ваш ViewController, вы не дали выход ссылки на ваш ViewController.