代码之家  ›  专栏  ›  技术社区  ›  pjb3

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

  •  1
  • pjb3  · 技术社区  · 16 年前

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

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

    这对我来说似乎是倒退。使用uiTableViewController的类不应该知道或关心它是否使用分组或纯样式,这是MyViewController应该关心的问题。处理这个问题的惯用方法是什么?重写MyViewController中的Init方法以调用InitWithStyle?

    3 回复  |  直到 14 年前
        1
  •  0
  •   kindaran    16 年前

    作为一个新手,我的答案是“只做它”,然后担心哲学设计问题。我看到的所有例子,包括畅销书,都有这样的“模式”,所以它不会太错。

        2
  •  0
  •   Brad The App Guy    16 年前

    在调用另一个超类的超类上重写一个init方法时要小心。这里我不确定,但是如果在子类中重写in it并调用super时initWithStyleAllReady在超类中调用in it,那么您的手上可能会有一个循环。

        3
  •  0
  •   zlog    14 年前

    我只需要通过xcode创建一个表视图控制器,在Interface Builder中将表指定为分组样式,然后在必要时重写init方法:

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

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