0

我有一个 iPhone 应用程序,它在我的所有视图上都使用了一个标签栏。此外,我的第一个视图控制器没有 navigationBarController,但我的第二个视图和标签栏一样。

我的第二个视图控制器是一个表格视图,当我单击一个单元格时,我想被带到第一个视图控制器(传递一个参数)。

我尝试了几种方法,这些方法都有效,但没有。

secondViewController.m
FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]];
[firstViewController passThisAlong:@"id"];

//[self presentViewController:firstViewController animated:YES completion:nil]; //1
[self.navigationController pushViewController:firstViewController animated:YES]; //2
//[self.tabBarController presentViewController:firstViewController animated:YES completion:nil]; //3
[firstViewController release];
firstViewController = nil;

正如您在上面看到的,我尝试了 3 种不同的方法来获取第一个视图控制器。第二个加载第一个视图,在第二个视图中向下钻取,因为它将 nagigationBarController(即使第一个视图没有)与第二个视图的后退按钮保持一致。

另外两个做同样的事情。哪个是第一个视图(没有导航栏),但是,没有标签栏,第一个视图的内容已经向上移动了大约标签栏的高度,取而代之的是黑色。

我希望这一切都有意义。当有人在表格中选择一个单元格时,我只想能够从我的第二个视图转到我的第一个视图,就好像我单击了选项卡栏中的图标一样。

我在文档中看到 'On iPhone and iPod touch, the presented view is always full screen. On iPad, the presentation depends on the value in the modalPresentationStyle property.'不确定这是否与我的问题有关,如果是,是否有解决方法。

非常感谢,

4

2 回答 2

1

当前模态视图以这种方式工作。为什么不能使用基于 Tab 的应用程序?

于 2012-07-10T14:39:02.177 回答
1

这很正常,模态视图应该以这种方式工作

来自Apple 文档

呈现视图控制器的能力是您可以使用的一种工具,用于中断当前工作流程并显示一组新视图。最常见的情况是,应用程序将视图控制器呈现为临时中断,以便从用户那里获取关键信息。但是,您也可以使用呈现的视图控制器在特定时间为您的应用程序实现替代接口。

在您的 didSelectRowAtIndexPath 中,您可以使用类似

YourAppNameDelegate *appDelegate = (YourAppNameDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate tabBarController].selectedIndex = 0;
于 2012-07-10T14:32:45.077 回答