从主视图切换到其他视图

时间:2012-05-11 18:38:57

标签: ios cocoa-touch view uikit viewcontroller

我正在尝试使用按钮从一个视图(XIB)转到另一个视图。我正在使用Xcode 4.3.2和iOS 5.我首先创建项目(Single View Application)。然后我在Interface Builder中创建我的按钮,在头文件中创建我的插座,在.m文件中创建我的IBAction。接下来,我右键单击Xco​​de中的项目文件夹并选择“新建文件”。然后我选择了“Object-C Class”并将其命名为“SecondViewController”。创建了两个新文件,“SecondViewController.h”和“SecondViewController.m”。然后我回去右键单击Xco​​de中的项目文件夹,选择“新建文件”,然后从“用户界面”选项中选择“查看”。

现在我有我的空IBAction(我的按钮),我想用它去一个新的视图,叫做SecondViewController.xib。

如果新的XIB和.h / .m文件的创建到目前为止是正确的,那么我将如何使用我的按钮“转到”或显示我的第二个视图呢?请记住,我仍然处于初级水平,我感谢您的帮助和耐心:)

我在主视图和我的SecondView之间可以区分的唯一区别在于头文件:

主视图头文件:

@interface ButtonToNewViewViewController : UIViewController

第二个查看标题文件:

@interface SecondViewController : NSObject

IBAction为:

-(IBAction)nextView:(id)sender
{
    // go to new view
}

3 个答案:

答案 0 :(得分:10)

这是一个非常简单的任务,很多在线教程都有涉及,但我会给你一些帮助。 : - )

首先,当您创建SecondViewController时,请记住将其创建为UIViewController的子类,而不是NSObject。因此,除非您对这些文件做了大量工作,否则您可以继续重新创建它们。同时,您可以通过选中创建过程中的复选框,确保Xcode自动为您创建xib文件。

创建SecondViewController(。h,.m和.xib)后,打开ButtonToNewViewController.m并将#import "SecondViewController.h"放在文件顶部。在方法nextView:中,您可以使用这两行来更改为第二个视图控制器:

SecondViewController *second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
[self presentViewController:second animated:YES completion:nil];

这应该弹出第二个视图控制器,带有一些简单的动画。确保传递给initWithNibName:的字符串与.xib文件具有相同的名称。

如果您想返回ButtonToNewViewController,可以在SecondViewController中使用此方法:

[self dismissViewControllerAnimated:YES completion:nil];

那应该清楚一点。 : - )

答案 1 :(得分:1)

对于返回此问题的任何人,从iOS 6开始,不推荐使用以下语法

[self presentModalViewController: ]

替换非常相似

[self presentViewController:viewController animated:YES completion:nil];

答案 2 :(得分:0)

您可以使用以下内容从一个xib更改为另一个。

- (IBAction)showInfo1:(id)sender
{    
    mySecondViewController *controller = [[mySecondViewController alloc] initWithNibName:@"nameOfMyXib" bundle:nil];
    [self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
    [self presentModalViewController:controller animated:YES];
}