2016-04-29 3 views
1

Я новичок в программировании на iOS, и я учусь использовать раскадровку для разработки пользовательского интерфейса.iOS - Почему табличный вид не отображается?

Я еще не написал код, потому что все, что сделано сейчас, находится в раскадровке.

Программа является Tabbed Application, и я заменил первый вид на UITableView и перешел к контроллеру начального представления.

Вся структура похожа:

enter image description here

Но когда я запускаю его в тренажере, вид таблицы показал, без какого-либо содержания (У меня есть несколько представлений таблицы ячеек, как вы можете видеть в первый снимок).

enter image description here

Я не могу понял, что это не так?

+0

Добавить метод делегата в Tableview –

+0

Это хороший учебник для начинающих Http: //www.appcoda. com/ios-programming-tutorial-create-a-simple-table-view-app/ –

+0

Проверьте мой ответ @ penguin-penpen –

ответ

1

Если вы не пишете код, было бы трудно увидеть эти клетки

Прежде всего, перетащить выход из Tableview к соответствующему ViewController и назовите его Tableview.

Чтобы сделать это, выберите пользовательский TableViewClass в раскадровку, это позволит вам перетащить выход в этот файл класса enter image description here

затем:

class TableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {...} 

соответствуют этим двум протоколам, реализовав как

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

и

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

Также не забудьте добавить

self.tableView.dataSource = self; 
self.tableView.delegate = self; 

внутри

ViewDidLoad() метод

+0

I cr «TableViewController» и добавить код в метод «ViewDidLoad()», но это не повлияло? Как связать класс с табличным представлением в моей раскадровке? –

+0

см. Мое редактирование, я показал все необходимые шаги – DCDC

+0

Это код 'swift'? –

0

добавьте источник данных и делегирует себя в ViewDidLoad или через раскадровки он работает для вас

- (void)viewDidLoad 
{ 
yourtablename.delegate = self; 
yourtablename.datasource = self; 
} 
1

Выберите таблицу в раскадровке и добавьте, как этот метод делегата.

Вариант А:

//.h file 
@interface Tableviewcontroller : UIViewController< UITableViewDataSource, UITableViewDelegate> 

//.M file 
    - (void)viewDidLoad 
    { 
    yourtablename.delegate = self; 
    yourtablename.datasource = self; 
    } 

Вариант B:

enter image description here

+0

Решение B не работает для меня. Но решение A действительно помогает! –

+0

ОК. то не беспокойтесь. Наслаждайтесь решением. :) –

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