导航控制器让我到IOS中的标签栏控制器

时间:2012-09-06 13:43:43

标签: ios uinavigationcontroller uitabbarcontroller

好吧,我已经阅读了这些帖子和教程,但是他们让我更加困惑:

url 1 quest 1 quest 2

我想要的是做到这一点:

一开始,我的应用程序有一个表格视图。当我按一行时,它应该带我到另一个有标签的视图。

到目前为止我做的是:

1)创建了一个导航控制器,还有我的tableview。当我按一行时,会打开一个视图。在该视图中(使用自己的.xib文件),我添加了标签栏项。

你可以在这里看到图片:

navigation controller single view

但是现在,我不知道在按下标签栏项目时如何制作它,以打开新视图。我试图将我的视图嵌入控制器,但我不能。

2)然后我尝试了这个: 像以前一样拥有我的导航控制器,我在故事板中添加了一个标签栏控制器,如图所示: enter image description here

但我无法连接它们。我的第一个观点是“SkiCenter”课程,我使用的代码是:

SkiCenter *myDetViewCont = [[SkiCenter alloc] initWithNibName:@"SkiCenter" bundle:[NSBundle mainBundle]];
    myDetViewCont.ski_center=[centers objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:myDetViewCont animated:YES]; // "Pushing the controller on the screen"
    [myDetViewCont release]; // releasing controller from the memory
    myDetViewCont = nil;

我得到的SIGBRT说明了一些关于“SkiCenter”的.nib文件。

你能建议用1或2溶液吗?

只是为了让它更清晰: 解决方案1: 按下该行会让我看到一个名为skicentermain的uiview。我添加了几个tabbaritems,但我不知道如何让它们打开新视图。

溶剂2: 插入了tabbar控制器。它的第一个标签是SkiCenter。但是当按下行时,我得到一个sigbart错误。它说了一些关于SkiCenter的nib文件。

2 个答案:

答案 0 :(得分:1)

如果您决定使用故事板,您只需将标识符从attributes inspector添加到任何视图控制器,然后使用其id进行实例化。

UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

[[self navigationController] pushViewController:[storyBoard instantiateViewControllerWithIdentifier:@"ViewControllerID"] animated:YES];

答案 1 :(得分:0)

您似乎错误地声明了*myDetViewCont。你打电话给你的笔尖SkiCenterMain,而不是SkiCenter。另外,SkiCenterMain究竟是什么?那是一个UITabBarController吗?

//SkiCenter *myDetViewCont = [[SkiCenter alloc] initWithNibName:@"SkiCenter" bundle:[NSBundle mainBundle]];
SkiCenter *myDetViewCont = [[SkiCenter alloc] initWithNibName:@"SkiCenterMain" bundle:[NSBundle mainBundle]];