我有一个视图,用户选择要执行的操作,在下一个屏幕上有一个保存和后退按钮。对于这两个按钮,最后一行是dismissViewControllerAnimated:
。
我需要一种方法,只有在使用后退按钮时才能显示第一个屏幕。保存应该发送回主屏幕/ rootViewController我是相当新的iOS但不是一般的编程,只需要在正确的方向轻推。
我可以设置一个bool
标志来显示吗?也许我可以在视图上设置标签,然后在保存/返回的其他屏幕中检查它?我假设我可以检查父视图。
很抱歉,如果这是一个重复,但我找不到任何具体的内容。
编辑:我没有使用导航控制器,而是以模态方式显示视图。
答案 0 :(得分:1)
答案取决于UIViewControllers
的结构和设置方式。如果您使用的是uinavigationcontroller,那么您可以使用以下方式 POP 到根视图控制器:
[self.navigationController popViewControllerAnimated:YES];
如果您以模态方式呈现UIViewControllers
,则可以使用presentViewController属性尝试关闭模态视图控制器的呈现视图控制器:
[[[self presentingViewController] presentingViewController] dismissViewControllerAnimated:YES completion:nil];
如果你正在使用故事板,你可能还想看看展开赛段:
最后,确定是否按下后退按钮或其他按钮 - 这取决于应用程序的设置方式。您需要使用自己的逻辑(可能是if / then
语句或case / switch
)来确定按下了哪个按钮。您还可以查看sender
中的IBActions
参数。
答案 1 :(得分:0)
John,让UINavigationViewController返回它的根视图控制器,你使用:
[nameOfNavController popToRootViewControllerAnimated:YES];
其他人是正确的,你提供的信息绝对不足以确定你需要做什么。
您可以使用模态视图控制器的presentingViewController
属性来访问它的呈现控制器。
答案 2 :(得分:0)
事实证明我使用的术语是错误的。我以模态方式呈现所有视图,这是问题,没有导航控制器。我最终使用NSNotification构建一个监听器,让主视图控制器监听,然后关闭视图,从而显示自己。做了一个款待。
这是我最终得到的代码的链接。 http://iphonedevsdk.com/discussion/114737/view-heirarchy-issues-possibly-from-the-camera
希望这有助于其他人。