【发布时间】:2018-01-29 20:22:11
【问题描述】:
是否可以在情节提要中创建一个 UITableview 类并分配给 UITableview?我有这个例子,但委托方法不调用。并且表格显示为空。
在 Table.h 类中:
#import <UIKit/UIKit.h>
@interface Table : UITableView <UITableViewDataSource,UITableViewDelegate>
@end
在 Table.m 类中:
@implementation Table{
NSArray *data;
}
-(instancetype)init{
self = [super init];
if (self) {
self.delegate= self;
self.dataSource = self;
data = @[@"bmw",@"mercedes",@"audi"];
}
return self;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [data count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
cell.textLabel.text = [data objectAtIndex:indexPath.row];
return cell;
}
最后,在我的 ViewController.m 中,我需要实现它。 我有这个代码:
#import "ViewController.h"
#import "Table.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
Table *mainTable = [Table new];
self.table = mainTable;
}
@end
【问题讨论】:
-
我必须假设
ViewController是UITableViewController的子类。您的 Storyboard 设置如何?您是否覆盖了“插入式”控制器的类(您在那里使用了哪个类/组件)? -
是的,ViewController 是 UITableViewController 的子类,在我的故事板中,我有一个 UITableview 分配给类表。我尝试自定义一个 TableView,以便它可以在任何地方重复使用。
-
正如@GeneCode 提到的 - 通常你会有一个“控制器”来实现表源/委托,因为控制器将数据提供给它的视图 - 表。在 Storyboard 中,您需要有一个 UIViewController 组件,您可以在其中将类覆盖到您的
ViewController
标签: ios objective-c uitableview delegates datasource