2

我有一个带有一个主 TabBarController 的应用程序,其中包含两个控制两个不同视图 A 和 B 的选项卡。视图 A 是滚动视图,视图 B 是表视图。当我最初加载应用程序时,视图 A 中的滚动视图为空。

为了将页面添加到我的滚动视图,我将其设置如下:我转到视图 B 并对嵌入了导航栏的视图执行一个模态搜索。导航栏只有一个按钮“取消”,我用它来关闭视图。否则,用户必须单击图像并执行另一个模态搜索到不同的视图。这个视图没有导航栏,只有一个按钮“完成”,我用它来执行返回初始 tabBarController 的模态。

这是问题所在:按“完成”后,页面被添加到滚动视图中,没有错误。但是,我相信我现在有两个相同的 tabBarController 实例在内存中浮动。当我尝试使用不同的按钮获取 scrollView 中包含的视图时,它告诉我它现在是空的(即使在 viewDidLoad 和 viewDidAppear 期间它已满)。

如何删除初始 tabBarController 视图,或者如何重新回到我已经分配的 tabBarController ?任何帮助将不胜感激!谢谢!

4

1 回答 1

2

您不应该转回原始视图控制器。相反,您应该关闭当前的动画视图控制器,并显示您原来的 tabBarController。

在您要返回的视图中,添加:

tabBarController *tabs = (tabBarController*)[[self presentingViewController]presentingViewController];
tabs.selectedViewController = [tabz.viewControllers objectAtIndex:0];

[[[self presentingViewController] presentingViewController] dismissViewControllerAnimated:YES completion:nil];

然后您将看到视图 A 并仍然使用相同的分配。

于 2012-11-01T05:51:30.253 回答