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