#objective-c #uitableview
#objective-c #uitableview
Вопрос:
У меня есть элемент управления панелью вкладок, и я хочу показать представление таблицы на первой вкладке.
В моей раскадровке у меня есть контроллер просмотра панели вкладок с элементами, и я помещаю в него tableview и ячейку tableview. (Я не уверен в этом. Должен ли я помещать их для отображения данных в tableview или я должен делать это программно?) Я получаю данные из базы данных (с этой стороны нет никаких проблем), но не могу связать данные в tableview.
Что не так в моем коде?
Мой код:
.h файл
@interface CategoryTabController : UIViewController<UITableViewDataSource, UITableViewDelegate>
{
DatabaseProcess *databaseProcess;
UITableView *categoryTableView;
NSMutableArray *categoryTableArray;
}
.m file
@implementation CategoryTabController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
databaseProcess = [[DatabaseProcess alloc]init];
//Get Category data to array
categoryTableArray = [[NSMutableArray alloc]initWithArray:[databaseProcess getAllActiveCategory]];
categoryTableView = [[UITableView alloc]init];
categoryTableView.delegate = self;
categoryTableView.dataSource = self;
[self.view addSubview: categoryTableView];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{ // Return the number of rows in the section.
return categoryTableArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CategoryCell" forIndexPath:indexPath];
cell.textLabel.text = [categoryTableArray objectAtIndex: indexPath.row];
return cell;
}
Ответ №1:
Вы должны сделать categoryTableView свойством IBOutlet и подключить его к своей таблице в IB. Также вы должны установить «CategoryCell» в качестве идентификатора ячейки в IB на ‘dequeueReusableCellWithIdentifier’ для работы.