如何以编程方式创建UIViewController?
我正在一个应用程序中工作,我在UITableView
有数据。它就像是一个向下钻取的应用程序。用户将点击一行,然后转到下一页,显示UITableView
中的更多记录。但在我的情况下,问题是我不知道多少级别的用户可以钻。级别数量不固定。所以现在我想创建并以编程方式添加viewcontrollers。可能吗??如果是的话如何? 在此先感谢。如何以编程方式创建UIViewController?
UIViewController *controller = [[UIViewController alloc] init];
controller.view = whateverViewYouHave;
你有你自己的视图控制器,你编码?在这种情况下,如果您使用的是IB,那么您可能不需要设置视图属性。当你有你的控制器,你可以将它推到navigationController或模态地查看它等。
UIViewController
s总是以编程方式创建。这听起来像你只需要具有用于视图控制器的每个电平相同的类,例如:
//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(即数组的数组)的。
感谢eman的回答,在这个新的视图控制器中,我需要显示带有记录的UITableview。我将如何做到这一点? – pankaj 2010-04-22 07:09:29
是的,还有一件事用户还可以从这个新的程序化创建的视图控制器 – pankaj 2010-04-22 07:12:08
(更新的示例)进一步深入到下一级在此示例中,每个表视图控制器都有一个记录数组,其中每个记录都有一个数组子记录(纠正我,如果我没有正确理解设计)。所以你可以有一个名为Record的类,它有一个名字(显示在表格单元格中)和一个“记录”的“NSArray” - 每个表格视图控制器都会显示子记录数组。 – shosti 2010-04-22 07:41:37
现在,我在一个视图控制器,并希望将用户引导到新的视图 - 控制和显示数据的实现代码如下 – pankaj 2010-04-22 07:10:38
,是的,还有一个件事用户还可以进一步下降,从这个新的programmically创建视图 - 控制 – pankaj 2010-04-22 07:11:30
然后深入到一个新的水平你可能希望你的第一个视图控制器是一个UINavigationController。 – willcodejavaforfood 2010-04-22 08:21:55