iOS有条件地显示视图

时间:2013-07-22 17:04:29

标签: ios objective-c uiviewcontroller

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

我需要一种方法,只有在使用后退按钮时才能显示第一个屏幕。保存应该发送回主屏幕/ rootViewController我是相当新的iOS但不是一般的编程,只需要在正确的方向轻推。

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

很抱歉,如果这是一个重复,但我找不到任何具体的内容。

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

3 个答案:

答案 0 :(得分:1)

答案取决于UIViewControllers的结构和设置方式。如果您使用的是,那么您可以使用以下方式 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

希望这有助于其他人。