0

我有一个视图,其中用户选择要执行的操作,并且在下一个屏幕上有一个保存和一个后退按钮。对于这两个按钮,最后一行是dismissViewControllerAnimated:

我需要一种仅在使用后退按钮时才显示第一个屏幕的方法。保存应该发送回主屏幕/rootViewController 我对 iOS 还很陌生,但一般不会编程,只需要朝正确的方向轻推。

我可以设置一个bool标志来显示或不显示吗?也许我可以在视图上设置标签,然后在保存/返回的其他屏幕中检查它?我假设我可以检查父视图。

抱歉,如果这是一个重复,但我找不到任何专门针对此的内容。

编辑:我没有使用导航控制器,而是以模态方式显示视图。

4

3 回答 3

1

答案将取决于您UIViewControllers的结构和设置方式。如果您使用的是,那么您可以使用以下命令POP到根视图控制器:

[self.navigationController popViewControllerAnimated:YES];

如果您正在展示您的UIViewControllers模态,您可以尝试使用 presentingViewController 属性关闭模态视图控制器的展示视图控制器:

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

如果您使用情节提要,您可能还想看看Unwind Segues :

最后,就确定是按下后退按钮还是按下另一个按钮而言 - 这取决于应用程序的设置方式。您需要使用自己的逻辑(可能是if / then语句或case / switch)来确定按下了哪个按钮。您可能还想查看 中的sender论点IBActions

于 2013-07-22T17:16:07.883 回答
0

事实证明,我使用的术语是错误的。我以模态方式呈现所有视图,这就是问题所在,没有导航控制器。我最终使用 NSNotification 构建了一个监听器,让主视图控制器监听,然后关闭视图,从而显示自己。工作了一个款待。

这是我最终得到的代码的链接。 http://iphonedevsdk.com/discussion/114737/view-heirarchy-issues-possibly-from-the-camera

希望这对其他人有帮助。

于 2013-07-24T20:55:44.143 回答
0

约翰,要让 UINavigationViewController 返回它的根视图控制器,您可以使用:
[nameOfNavController popToRootViewControllerAnimated:YES];

其他人是正确的,您提供的信息绝对不足以确定您需要做什么。

您可以使用presentingViewController模态视图控制器的属性来访问它的呈现控制器。

于 2013-07-22T17:21:52.797 回答