0

我有一个正在开发的应用程序,它有一个带有两个按钮的主屏幕。一个会带你到 GPS(地图)的视图,然后在那里(新的 VC)它可以选择设置该位置或显示已标记的所有位置的列表(tableview,另一个 VC)。

在 VC 列表中,如果您单击表格单元格,它将显示带有地图的 VC。问题是,这会在堆栈上添加相同的 VC bak。如果用户单击取消按钮,他们返回一个屏幕,然后取消返回另一个屏幕,等等......直到返回主屏幕。

我知道我可以做 [self.navigationController popToRootViewControllerAnimated:YES]; 弹回根目录,但这并不总是我想要的。

另外,我知道我可以做到: [[[self presentingViewController] presentingViewController] dismissModalViewControllerAnimated:YES];

我想我的意思是我想“重用”GPS 地图视图,以便可以从其他 VC 调用它,这就是为什么我没有使用“回传”来调用 VC。那么,当按下按钮并呈现新的 VC 时,是否可以在显示新的 VC 后关闭前一个?这样,解雇当前的 VC 会带我回到我需要的地方。

我希望是有道理的,而且这个问题不属于“不是一个实际的问题”类别。

非常感谢任何帮助或更好的建议。谢谢

地理...

4

2 回答 2

1

如果您想在导航控制器的 VC 堆栈中跳回一些级别,您可能需要使用它的popToViewController:animated:方法。要确定特定视图控制器是否在该堆栈上,请查看导航控制器的viewControllers属性。不过要小心,因为这种跳跃是一种相当不标准的 UI 行为(即使有它的 API),这可能会使您的用户感到困惑。

此外,使用导航控制器和模态显示并不是管理多个视图控制器的唯一方法——您始终可以rootViewController自己设置窗口(并使用 UIView 动画为更改设置动画),甚至可以将自定义转换类型包装在自定义UIStoryboardSegue中喜欢。

于 2013-02-13T17:32:13.147 回答
0

您可以在表格视图中放置一个委托。因此,当按下单元格时,信息将传递给 VC 中的委托方法,该方法将关闭表格视图并使用新信息重新加载自身。您必须在该 VC 中实现刷新方法。

于 2013-02-13T19:26:59.853 回答