UIViewController中的UITableViewController作为局部视图

时间:2014-06-10 07:16:03

标签: iphone objective-c uitableview uiviewcontroller xcode5

我是ios dev的新手,所以我的问题可能很简单! 我想在不同的地方使用UITableViewController(可重用),所以作为.net开发人员,我想创建一个UITableViewController并将其加载到不同的视图中(如MVC.net中的Partial视图) 我知道想要包含这个表的UIView应该实现UITableViewDelegate和UITableViewDataSource方法,但我不想这样做,我的意思是我希望Partial视图处理所有这些逻辑,因为这是具有访问CoreData。

我已经搜索了不同的解决方案,在几乎所有解决方案中,我必须在每个想要使用该局部视图的视图中实现这些方法。

有什么建议吗? 感谢

1 个答案:

答案 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文件中的子视图绑定。 希望这可以帮到你。