当选择注释标注时,我想从细节(地图视图)到主控(UITabBarController)中的第一个选项卡。第一个选项卡是我想要更新的表视图。
如果我转向表视图并使用segue样式的'replace',那么我将失去标签栏。如果我选择'push',我会收到运行时错误,表明接收器不是导航控制器。
我想我可以选择标签栏控制器,在地图视图上设置一个布尔值,然后通过segues来查看我想要的位置(表格视图)或使用app delegate,但是我如果可以的话,请使用更优雅的解决方案。
答案 0 :(得分:0)
如果我正确理解你的要求你有一个带有一些标签的UITabBarController,那么它想要暂时在它上面推送一个细节(地图)视图。当地图视图被解除时,你想回到相同的初始UITabBarController?
要做到这一点,更好的解决方案是将地图视图推送为“模态” - 在这种情况下,它将接管屏幕。只是要小心,因为你不能忽略模态屏幕本身 - 它需要理想地从首先显示它的viewcontroller中解散。例如,在推送模态视图控制器的类的prepareForSegue方法中,您可以将引用传递回自身或使用委托:
[modalViewController setParent:self];
然后在模态类中,当某个按钮或其他事件触发解雇时,您可以:
[parent.modalViewController dismissModalViewControllerAnimated:YES];