将带有导航控制器的tableView添加到基于视图的项目中 - iPhone编程

时间:2011-05-31 13:37:03

标签: iphone objective-c ios uitableview uinavigationcontroller

我有一个带有一组按钮的基于视图的项目。

当按下其中一个按钮时,我想要一个带有导航控制器的表格视图。我在另一个项目中有这个代码。

我的代码基本上是本教程的一些小改动(只是前两部分): 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 ......有什么想法吗?

谢谢,

杰克

1 个答案:

答案 0 :(得分:1)

您可以创建一个控制器(具有您的表视图),然后创建一个导航控制器,其根控制器作为具有表视图的控制器。从这里你可以看到这个导航控制器。

导航控制器有一个名为

的方法
- (id)initWithRootViewController:(UIViewController *)rootViewController

更新:

//创建根控制器。

RootController *controller = [[RootController alloc] initWithNibName:@"RootControllerNibName" bundle:nil];

//使用根控制器创建导航控制器。

UInavigationController *navController = [UINavigationController initWithRootViewController:controller];

//展示您的导航控制器。

[self presentModalViewController: navController animated:YES];

//释放根控制器和导航控制器......