3

我有两个视图控制器,我需要在 ViewControllerOne 中有一个按钮,当我按下它时向我显示 ViewControllerTwo。

在情节提要中,我将这两个视图与“Prepresenting Segues”相关联 - 推送模式。两个视图都有一个视图控制器类。

4

2 回答 2

9

我不确定您所说的“我将这两个视图都与 'Presenting Segues' - Push modal 相关联”是什么意思。您是在使用导航控制器并想要推送转场,还是想做模态转场?“推送模式”在术语上是矛盾的。

所以,让我们假设你想要一个模态转场。因此,您在第一个视图上放置一个按钮,右键单击并从该按钮拖动(或按住 Control 单击并拖动)到第二个视图。

创建转场 1

你会弹出一个询问segue类型的窗口。选择“模态”。

创建转场 2

你已经完成了从 1 到 2 的转换。不需要任何代码。

如果您希望第二个视图上的按钮将您带回第一个视图,您希望从第二个视图返回到第一个视图的模态转换,而是您想要dismissViewControllerAnimated. 您可以通过自定义 segue 来执行此操作,或者更简单,只需一个调用dismissViewControllerAnimated. 因此,您将在第二个视图中添加一个按钮,并且当编辑器处于“助手”模式时(关联的 .h 文件显示在界面构建器下方;如果您想知道如何显示 .h 文件,请参见下文。 h 文件与 Interface Builder 屏幕同时显示),右键单击(或按住 Control 单击)并从第二个视图上的按钮向下拖动到第二个视图控制器的 .h 文件:

解雇 1

顺便说一句,如果您在那里看不到 .h 文件,请单击“助手”编辑器按钮并选择“自动”以便在此处显示文件,您应该会很好:

助理编辑

然后它会向您显示一个弹出窗口,询问您想要做什么。选择IBAction并为您的新方法命名:

解雇 2

然后转到视图控制器的代码,并添加dismissViewControllerAnimated代码:

在此处输入图像描述

所有这些代码都说(在这个例子中,我刚刚调用了我的 IBAction dismissTwo)是:

- (IBAction)dismissTwo:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}
于 2012-08-07T00:54:58.937 回答
5

如果你想做一个 push segue,那就更容易了。首先,如果您还没有导航控制器,请通过选择第一个视图并选择“嵌入”-“导航控制器”来添加一个:

推1

当您这样做时,您将拥有一个新的导航控制器(您实际上并不需要对其进行太多操作),并且第一个视图将有一个导航栏。

推 2

现在,右键单击(或按住 Control 单击)第一个视图的按钮并拖动到第二个视图:

推 3

这一次,选择“push”segue:

推4

而且您会知道它有效,因为您的第二个视图将有一个导航控制器

在此处输入图像描述

你不需要一个按钮来返回,因为导航控制器会自动有一个“返回”按钮,所以你不需要自己添加。

这就是你实现 push segue 的方式。

于 2012-08-07T01:20:07.197 回答