如何以编程方式创建UIViewController?

时间:2010-04-22 06:32:23

标签: iphone uitableview uiviewcontroller

我正在使用UITableView中的数据的应用中工作。它就像一个向下钻取的应用程序。用户将点击一行,将转到下一页,显示UITableView中的更多记录。但我的问题是,我不知道用户可以钻多少级别。级别数量不固定。所以现在我想以编程方式创建和添加viewcontrollers。可能吗??如果有,怎么样?     提前谢谢。

2 个答案:

答案 0 :(得分:22)

UIViewController *controller = [[UIViewController alloc] init];
controller.view = whateverViewYouHave;

您是否拥有自己编码的视图控制器?在这种情况下,您可能不需要设置视图属性,因为它已在IB中设置,如果这是您使用的。拥有控制器后,您可以将其推送到navigationController或以模态方式查看等。

答案 1 :(得分:3)

UIViewController始终以编程方式创建。听起来你只需要为每个级别的视图控制器设置相同的类,例如:

//CoolViewController:UITableViewController
//CoolViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (!self.isAtTopLevel) {
        CoolViewController *cvc = [[CoolViewController alloc] initWithRecord:[self.records objectAtIndex:indexPath.row]];
        [self.navigationController pushViewController:cvc animated:YES];
        [cvc release];
    } else {
        //do something else
    }
}

在这种情况下,thingies将是某种递归NSArray(即数组数组)。