我有两个View控制器,我需要在ViewControllerOne中有一个按钮,当我按下它时显示ViewControllerTwo。
在故事板中,我将两个视图与“呈现区域”相关联 - 推模态。并且两个视图都有一个视图控制器类。
答案 0 :(得分:9)
我不确定你的意思是“我将两个视图与'呈现Segues'相关联 - 推模态。”您使用的是导航控制器并且想要推送segue,还是想要进行模态转换? “推模式”是一个矛盾。
所以,让我们想象你想要一个模态segue。因此,您在第一个视图上放置一个按钮,右键单击并从该按钮拖动(或按住Control并单击并拖动)到第二个视图。
你会弹出一个询问segue类型的人。选择“模态”。
你完成了从1到2的转换。无需代码。
如果你想让第二个视图上的一个按钮带你回到第一个视图,你不想要从第二个视图回到第一个视图的模态segue,而是你想要dismissViewControllerAnimated
。您可以通过自定义segue执行此操作,也可以更轻松地使用调用dismissViewControllerAnimated
的按钮。因此,您可以在第二个视图中添加一个按钮,同时编辑器处于“助手”模式(关联的.h文件显示在界面构建器下方;如果您想知道如何显示,请参见下文)。 h与Interface Builder屏幕同时发送文件),右键单击(或按住Control键单击)并从第二个视图上的按钮向下拖动到第二个视图控制器的.h文件:
顺便说一句,如果你没有看到那里的.h文件,点击“助手”编辑器按钮并选择“自动”显示要在那里显示的文件,你应该很好:
然后它会显示一个弹出窗口,询问您要执行的操作。选择IBAction
并为您的新方法命名:
然后转到视图控制器的代码,并添加dismissViewControllerAnimated
代码:
所有代码都说明了(在本例中,我刚刚调用了我的IBAction dismissTwo
):
- (IBAction)dismissTwo:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
答案 1 :(得分:5)
如果你想做推送segue,那就更容易了。首先,如果您还没有导航控制器,请选择第一个视图并选择“嵌入” - “导航控制器”来添加一个:
当你这样做时,你将拥有一个新的导航控制器(你真的不需要做太多),第一个视图将有一个导航栏。
现在,在第一个视图的按钮上单击鼠标右键(或按住Control键单击)并拖动到第二个视图:
这一次,选择“推送”segue:
你会知道它有效,因为你的第二个视图将有一个导航控制器
您不需要按钮就可以返回,因为导航控制器会自动显示“后退”按钮,因此您无需添加自己的按钮。
这就是你实现推送的方式。