UITableView не заполняется из UIView - PullRequest
1 голос
/ 06 февраля 2012

У меня есть проблема, с которой я сижу.Мой tableView, который я помещаю в свой UIView, не заполняется, или иногда я получаю исключение.

// .h
@interface List : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
    UITableView *mTableView;
}

@property (nonatomic, readonly) IBOutlet UITableView *tableView;
//------------------------------
// .m
@synthesize tableView=mTableView;

//Further I do the normal viewDidUnload stuff = nill
//And the numberOfSectionsInTableView, numberOfRowsInSection and 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"cellForRowAtIndexPath:");
    NSLog(@"Table View: %@",[tableView description]);
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.textLabel.text = @"Hi";
    // Configure the cell...

    return cell;
}

Я получаю в качестве вывода:

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

или просто список пустых ячеек, а недаже «Привет» в качестве заголовка.

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Я почти уверен, что эта ошибка возникает из-за того, что вы неправильно подключили UITableView.Вы должны удалить ivar mTableView, IB свойство таблицы на выходе и @synthesize.Затем УДАЛИТЕ ВЫХОД В IB.Затем подключите его снова, перетащив его из конструктора интерфейса, и НЕ ТИПИТЕ ЛЮБОГО КОДА в вашем классе.Xcode сделает все за вас (создайте свойство, синтезируйте его и сделайте MM)

0 голосов
/ 03 ноября 2012

Если вы ничего не делаете со своим IBOutlet, почему он у вас есть?Метод

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

Вызывается nib-файлом для экземпляра tableView, созданного в nib.Ваш класс, поскольку делегат этого экземпляра получает этот вызов.Быть делегатом tableView в кончике - это все, что вам нужно.

0 голосов
/ 07 февраля 2012

Убедитесь, что вы установили делегат и источник данных таблицы в Интерфейсном Разработчике

...