是否可以使用一个UITableViewController
到多个UIViewControllers
。如果是,怎么可能,提前谢谢。
我有3个屏幕(UIViewControllers)
具有UITablewView
相同的布局。那么,我可以为所有这些屏幕创建一个UITableViewController
,我可以在所有屏幕(UIViewControllers)
中使用它吗?如果是,请给我一些想法,不需要使用自定义单元格
答案 0 :(得分:0)
如果您只是不想两次实现相同的委托和数据源方法,请在一个控制器中执行,并从中继承其他控制器。
答案 1 :(得分:0)
你似乎并不完全明白UITableViewController
究竟是什么;它实际上是UIViewController
的子类。
您的UIViewControllers
不需要UITableViewController
。如果您希望使用UIViewController
,则应手动实施UITableView
。
鉴于tableView需要一个set delegate和datasource,我认为重复使用与多个ViewControllers相同的tableView可能有点复杂。除非你乐意将这项工作归功于单独的课程或展示的热交换。
答案 2 :(得分:0)
是的,但是你必须在所有3个viewcontrollers中添加uiitableview。
这里有一些例子..! 将标记设置为该表视图为21
并在tableview实现文件中执行此类
的实现@implementation LCsampleTableView
UITableView *tableView1;
- (id)initWithCoder:(NSCoder *)aDecoder {
// self = [super init];
self = [super initWithCoder:aDecoder];
if (self) {
tableView1 =(UITableView *)[self viewWithTag:21];
[tableView1 setDelegate:self];
[tableView1 setDataSource:self];
// [self myviewDidload];
}
return self;
}
#pragma mark - Table view start
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 2;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tblCell"];
//cell = myCellDeque;
if(cell == nil){
// cell = myCellDeque;
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"tblCell"];
UILabel *lb1 = [[UILabel alloc] initWithFrame:CGRectMake(25, 6, 154, 20)];
lb1.tag = 1; // Set a constant for this
lb1.font = [UIFont systemFontOfSize:9.0];
[lb1 setTextColor:[UIColor whiteColor]];
lb1.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor= [UIColor colorWithRed:7.0/255.0 green:91.0/255.0 blue:164.0/255.0 alpha:1] ;
[cell.contentView addSubview:lb1];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
#pragma -mark tableDelete
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
//Return YES if you want the specified item to be editable.
return YES;
}
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
}
@end
在所有三个控制器中使用类添加此tableview,然后您不必在所有3个控制器中为此tableview编写代码。希望它有所帮助
像这样在tableview中添加标签