2014-02-15 3 views
5

Я знаю, что заголовок достаточно иллюстрирует, и я ЗНАЮ, что этот вопрос задавал пару раз, но в этом случае мне не удалось заставить его работать.UITableView - cellForRowAtIndexPath не набирается

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

Итак, вот история:

У меня есть вид таблицы в одном из моего зрения контроллера в раскадровке с пользовательским классом с именем ContactViewController, и это связанно с кодом, используя выход имени favContactsTable

Здесь являются связанные части от его .h и .m:

ContactViewController.h

@interface ContactViewController : UIViewController <UITableViewDataSource> 

// Other Stuff 
    . 
    . 

@property (retain, nonatomic) IBOutlet UITableView *favContactsTable; 

    . 
    . 
// Other Stuff 

@end 

И здесь реализуется функции UITableViewDataSource протокола:

ContactViewController.m

// Rest of the code 
. 
. 
. 
. 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 5; 
} 

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"TEST OUTPUT"); 

    //Test 
    int a = 1; // Breakpoint 
    a++; 

    cell = [self.favContactsTable dequeueReusableCellWithIdentifier:@"FavContactCell"]; 
    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FavContactCell"]; 
    } 
    cell.textLabel.text = @"FAV"; 
    . 
    . 
    . 
} 

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

- (IBAction)refreshTables:(id)sender 
{ 
    [self.favContactsTable reloadData]; 
} 

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

Пожалуйста, не упоминайте другие подобные вопросы, как дубликаты, потому что я уже прочитал их все (или, по крайней мере, большинство из них), и я уверен, что не возвращаю 0 строк для каждого раздела, и я обязательно favContactsTable не nil когда отправляю reloadData сообщение к этому и ... и т.п!

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

+1

Вы установили делегат – codercat

+0

Вы используете пользовательскую ячейку? –

+0

Нет, я не использую пользовательскую ячейку. –

ответ

19
@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> { 


} 

набор делегат

enter image description here

перетащить ваш значок ViewController

enter image description here

проверить идентификатор соты, как же в вашем коде также

enter image description here

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleTableCell"]; 

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
             reuseIdentifier:@"SimpleTableCell"]; 

    } 
return cell; 

} 
3

попробовать этот код:

@interface ContactViewController : UIViewController <UITableViewDataSource, UITableViewDelegate > 
. 
. 
. 

, а затем в viewDidLoad добавить делегата к вашему Tableview например собственности:

self.favContactsTable.delegate = self; 
0

Вы не подтвердили эти протоколы: UITableViewDataSource, UITableViewDelegate .Add это в ваш файл.

и после этого:

favContactsTable.delegate=self; 

favContactsTable.datasource=self; 

и прикрепить непосредственно из файла Xib.

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