0

I want to segue from the detail (a map view) to the first tab within the master (a UITabBarController) when an annotation callout is selected. 第一个选项卡是我要更新的表格视图。

如果我切换到表格视图并使用“替换”的切换样式,那么我会丢失标签栏。如果我选择“推送”,我会收到一个运行时错误,即接收器不是导航控制器。

我想我可以转到选项卡栏控制器,在地图视图上设置一个布尔值,然后通过转场赶上我想要的位置(表格视图)或使用应用程序委托,但我想要一个如果有更优雅的解决方案。

4

1 回答 1

0

如果我正确理解了您的要求,那么您有一个带有一些选项卡的 UITabBarController,然后想要在其顶部临时推送一个详细信息(地图)视图。当地图视图被关闭时,您想回到相同的初始 UITabBarController 吗?

为此,更好的解决方案是将地图视图作为“模态”推送——在这种情况下,它将占据屏幕。只是要小心,因为您不能从其自身关闭模态屏幕 - 理想情况下,它需要从首先显示它的视图控制器中关闭。例如,在推送模态视图控制器的类的 prepareForSegue 方法中,您可以将引用传递回自身或使用委托:

[modalViewController setParent:self];

然后在模态类中,当某个按钮或其他事件触发解雇时,您可以:

[parent.modalViewController dismissModalViewControllerAnimated:YES];

有关更多详细信息,请参阅:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html

于 2012-05-08T06:10:35.683 回答