在iphone上创建分组表视图控制器的最佳方法是什么?

时间:2009-06-14 20:37:44

标签: iphone

UITableViewController有一个initWithStyle方法,您可以在其中传递您希望表视图使用的样式,普通或分组。这意味着要创建和使用我的表视图控制器,代码中的其他位置,可能在多个地方,我这样做:

MyViewController *myViewController = [[MyViewController alloc] initWithStyle: UITableViewStyleGrouped];
[self.navigationController pushViewController: myViewController animated: YES];
[myViewController release];

这些似乎对我不利。使用我的UITableViewController的类不应该知道或关心它是否使用了分组或简单样式,这是MyViewController应该关注的问题。处理这个问题的惯用方法是什么?覆盖MyViewController中的init方法来调用initWithStyle?

3 个答案:

答案 0 :(得分:0)

在调用另一个超类的超类上覆盖一个init方法时要小心。我在这里不确定,但是当你在子类中重写init并调用超级时,initWithStyle allready在超类中调用init,你可能会有一个循环。

答案 1 :(得分:0)

作为新手,我的回答是“做到这一点”,后来担心哲学设计问题。我见过的所有例子,包括流行书都有“模式”,所以它不会太错。

答案 2 :(得分:0)

我只是通过xcode创建一个表视图控制器,在Interface Builder中为表分配分组的样式,然后在必要时覆盖init方法:

- (id)init {
    self = [super initWithNibName:@"MyViewControllerNibFileName" bundle:nil];
    if (self) {
        // Do other customisation
    }
    return self;
}

由于某种原因,我需要显式设置nib名称,但有时视图控制器只是自动找到它(我还是新手,所以不确定为什么会这样)