2012-08-07 75 views
3

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

在故事板中,我将两个视图与“呈现Segges”相关联 - Push模式。这两个视图都有一个视图控制器类。

+0

这是一个重复的[http://stackoverflow.com/questions/5814752/changing-viewcontroller-on-button-click](http://stackoverflow.com/questions/5814752/changing-viewcontroller-on-按钮点击) – 2012-08-07 00:08:17

回答

9

我不确定你的意思是什么“我将两个视图与'呈现Segges' - Push模式相关联。”您是否使用导航控制器并希望推入赛格,或者您是否希望进行模态赛? “推式”是一个矛盾的词汇。

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

create segue 1

你会得到一个弹出询问类型SEGUE的。选择“模式”。

create segue 2

就大功告成了转变,从1〜2号代码必要的。

如果你想在第二视图按钮,带你回到第一个观点,你不希望从第二视图回到第一个视图一个模式SEGUE,而是要dismissViewControllerAnimated。你可以通过自定义的继续,或者更简单,只需要一个叫dismissViewControllerAnimated的按钮。因此,您可以在第二个视图中添加一个按钮,而编辑器处于“助理”模式下(相关的.h文件显示在界面生成器下方;如果您想知道如何显示该文件,请参阅下文。在同一时间作为界面生成器屏幕.h文件),右点击(或控制单击)并拖动从第二视图中的按钮向下到第二视图控制器的h文件:

dismiss 1

顺便说一下,如果你没有在那里看到.h文件,点击“助手”编辑器按钮,然后选择“自动”,以显示在那里的文件,你应该很好:

assistant editor

它会告诉你一个弹出窗口,询问你想要做什么。选择IBAction,给你的新方法的名称:

dismiss 2

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

enter image description here

所有的代码说(和在这个例子中,我只是叫我的IBAction dismissTwo)是:

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

罗伯特,你是不得不回答我的问题的奉献精神,非常感谢你! – Tony 2012-08-10 19:45:51

5

如果你想做一个push segue,它会更容易。首先,如果你不已经有一个导航控制器,通过选择第一个视图中添加一个选择“嵌入” - “导航器”:

push 1

当你这样做,你就会有一个新的导航控制器(你并不需要做太多的工作),第一个视图将会有一个导航栏。现在

push 2

,右键点击你的第一个视图的按钮(或控制单击),然后拖动到第二个观点:

push 3

这一次,选择“推” Segue公司:

push 4

,你就会知道它的工作,因为你本身COND视图将有一个导航控制器

enter image description here

你并不需要一个按钮返回,因为导航控制器会自动有一个“后退”按钮,这样你就不需要添加自己的。

这是你如何实现推推力赛。

相关问题