【问题标题】:Change view controller on press button按下按钮更改视图控制器
【发布时间】:2012-08-08 00:10:10
【问题描述】:

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

在故事板中,我将这两个视图与“Presenting Segues”相关联 - 推送模式。并且两个视图都有一个视图控制器类。

【问题讨论】:

标签: iphone objective-c ios


【解决方案1】:

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

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

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

您已经完成了从 1 到 2 的转换。无需任何代码。

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

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

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

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

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

- (IBAction)dismissTwo:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

【讨论】:

  • 罗伯特,您回答我的问题的奉献精神令人惊叹,非常感谢!!!
【解决方案2】:

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

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

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

这一次,选择“push”segue:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多