我有一个带有一组按钮的基于视图的项目。
当按下其中一个按钮时,我想要一个带有导航控制器的表格视图。我在另一个项目中有这个代码。
我的代码基本上是本教程的一些小改动(只是前两部分): CODE
有没有办法将此代码导入到我的主项目中,以便在按下按钮时执行前面的代码?
编辑:
我使用此方法允许我更改视图:
- (void) displayView:(int)intNewView{
NSLog(@"%i", intNewView);
[currentView.view removeFromSuperview];
[currentView release];
switch (intNewView) {
case 1:
currentView = [[View1 alloc] init];
break;
case 2:
currentView = [[View2 alloc] init];
break;
case 3:
currentView = [[View3 alloc] init];
break;
case 4:
currentView = [[View4 alloc] init];
break;
case 5:
vc = [[RootViewController alloc] init];
currentView = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentModalViewController: currentView animated:YES];
break;
}
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
[self.view addSubview:currentView.view];
[UIView commitAnimations];
}
RootViewController是正确的控制器。如果我删除2行:
currentView = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentModalViewController: currentView animated:YES];
用rootview初始化程序中的currentView替换vc然后代码工作,我的表使用我的自定义单元格显示并成功解析xml并显示正确的数据,但没有导航控制器。但是,当我在表格视图上方添加2行时,它不起作用,我得到一个XML错误代码5 ......有什么想法吗?
谢谢,
杰克
答案 0 :(得分:1)
您可以创建一个控制器(具有您的表视图),然后创建一个导航控制器,其根控制器作为具有表视图的控制器。从这里你可以看到这个导航控制器。
导航控制器有一个名为
的方法- (id)initWithRootViewController:(UIViewController *)rootViewController
更新:
//创建根控制器。
RootController *controller = [[RootController alloc] initWithNibName:@"RootControllerNibName" bundle:nil];
//使用根控制器创建导航控制器。
UInavigationController *navController = [UINavigationController initWithRootViewController:controller];
//展示您的导航控制器。
[self presentModalViewController: navController animated:YES];
//释放根控制器和导航控制器......