我是ios dev的新手,所以我的问题可能很简单! 我想在不同的地方使用UITableViewController(可重用),所以作为.net开发人员,我想创建一个UITableViewController并将其加载到不同的视图中(如MVC.net中的Partial视图) 我知道想要包含这个表的UIView应该实现UITableViewDelegate和UITableViewDataSource方法,但我不想这样做,我的意思是我希望Partial视图处理所有这些逻辑,因为这是具有访问CoreData。
我已经搜索了不同的解决方案,在几乎所有解决方案中,我必须在每个想要使用该局部视图的视图中实现这些方法。
有什么建议吗? 感谢
答案 0 :(得分:1)
是的,您可以在局部视图中处理逻辑,例如exTableviewController。 处理协议UITableViewDataSource&你的exTableViewController中的UITableViewDelegate如下所示。
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Test"];
if (cell==nil) {
cell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Test"];
// cell.textLabel.textAlignment = NSTextAlignmentCenter;
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
cell.textLabel.text = [NSString stringWithFormat:@"%i", indexPath.row];
return cell;
}
将部分视图和视图控制器关联如下。
@interface YourViewController ()
@property (nonatomic, strong) exTableViewController *tableVC ;
@end
@implementation YourViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableVC = [[exTableViewController alloc] init];
[self.view addSubview:_tableVC.view];
// Do any additional setup after loading the view, typically from a nib.
}
@end
您还可以使用YourViewController.xib自定义子视图的大小。 并将self.tableVC与xib文件中的子视图绑定。 希望这可以帮到你。