0

我有一个具有三个选项卡的应用程序,可在用户点击它们时瞬间切换视图。第一个视图是一个表格视图,用于选择要过滤的“位置类型”,以便只显示这些引脚(将这些注释添加到第二个视图,MapView中)。通过单击第一个条目在第二个标签栏视图中滑动

当点击一个表格单元格,它瞬间切换到的MapView,使用此代码:

self.tabBarController.selectedIndex=1; 

不过,我想用卡式从右动画要做到这一点,像在深入了解表视图的层次结构时获得的一个。

我尝试这样做:

[self.navigationController pushViewController:[self.tabBarController.viewControllers objectAtIndex:1] animated:YES]; 

其编译没有错误或警告,但不切换视图。

如何将导航控制器应用到标签栏控制器上?或者有什么方法可以选择另一个视图控制器并指定一个动画?

回答

0

我不认为你将能够做到这一点与标签栏控制器,因为没有API来管理动画。您的选择是换出标签栏并使用按钮构建类似的东西,在这种情况下,您可以管理自己的视图堆栈,或者放弃动画,只需切换视图即可。

另一种方法是将地图显示为属于您当前选项卡的导航控制器堆栈的一部分 - (假设您有一个导航控制器堆栈),但这不会为您交换标签,只是将您移动到当前堆栈中的新位置。

+0

感谢您的回答! 这是否意味着我将不得不从头开始一个新的应用程序,并在Interface Builder中构建新的东西,重新连线,然后粘贴旧代码并更改所有与标签栏有关的操作? 如果是这样,什么是布局/解决方案,会给我最小的限制? 我选择了标签栏解决方案,以便所有三个视图都有机会在启动时同时加载,以便在切换到时加载它们。但是,也许这对所有其他解决方案都是可行的? 我很乐意'假'幻灯片,例如'移动'表视图。建议,任何人? – 2010-05-25 08:29:18

+0

Kludge解决方案可能 - 我可以在地图视图顶部添加一个表视图的副本,像现在一样立即切换到该视图,并将副本滑出视线,然后将其删除?思考? – 2010-05-25 08:32:38

+0

你不需要从头开始一个新的应用程序 - 我只是发现空白的应用程序一个好地方,了解正在发生的事情和从哪里获得代码! 虽然我会将第二个标签视图作为子视图添加到当前视图中,然后切换标签,然后再将其从超级视图中移除以返回到您的当前视图,但您的cludge也可能有效。原始状态(但现在看第二个标签)。 – Andiih 2010-05-25 14:02:39

相关问题