2014-02-21 2 views
1

У меня есть обычный ViewController, в котором я добавил tableView, который занимает небольшую часть экрана (как видно ниже). Поскольку мой tableView является статическим, я не реализовал ни один из методов источника данных Tableview, как это рекомендовано в answer. Однако контент, который я вложил в Storyboard, не появляется, и я не понимаю, что еще может произойти.Содержимое ячейки в статическом представлении таблицы не отображается

Для иллюстрации ниже то, что я создал в раскадровке:

enter image description here

Но это то, что показывает в тренажере:

enter image description here

Я дал self.tableview.delegate = self в viewDidLoad, а также объявить контроллер моего вида <UITableViewDelegate>. Однако ничто из этого не помогло.

ответ

6

Статические клетки работают только с UITableViewControllers. Они служат источником данных для табличного представления и несут ответственность за предоставление им всех тех строк, которые вы хорошо настроили для него Interface Buider. Обычно я использую Container View в таких ситуациях. Это представление, которое отображает представление другого контроллера представления внутри него. В вашем случае этот «другой контроллер» - это UITableViewController или тот, который получен из него.

enter image description here

+0

Этот подход не требует никакого кода, все может быть настроено в IB. – Danchoys

0

Вам нужен источник данных или ничего не появится.

необходимо реализовать 3 способа использовать UITableView правильно это

-(void)viewDidLoad { 
self.dataArray = @[@"A Fish",@"A Cat",@"A dog" 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
     return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return dataArray.count; 
} 

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

cell.title = dataArray.indexPath.row; 

return cell; 
} 

В последнем методе вы можете увидеть идентификатор соты, Это используется, чтобы идентифицировать клетки.

NSString *CellIdentifier = @"CellIdentifier"; 

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

Надеется, что это помогает

Конга

+0

Это было очень полезно! Спасибо, и это сработало :) – daspianist

+0

Этот подход не позволяет вам настроить вид таблицы в IB. – Danchoys

+1

Это не статический вид таблицы! вы просто используете статический массив в качестве источника данных, статические ячейки должны быть установлены в Story Board. –

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