我正在尝试使用按钮从一个视图(XIB)转到另一个视图。我正在使用Xcode 4.3.2和iOS 5.我首先创建项目(Single View Application)。然后我在Interface Builder中创建我的按钮,在头文件中创建我的插座,在.m文件中创建我的IBAction。接下来,我右键单击Xcode中的项目文件夹并选择“新建文件”。然后我选择了“Object-C Class”并将其命名为“SecondViewController”。创建了两个新文件,“SecondViewController.h”和“SecondViewController.m”。然后我回去右键单击Xcode中的项目文件夹,选择“新建文件”,然后从“用户界面”选项中选择“查看”。
现在我有我的空IBAction(我的按钮),我想用它去一个新的视图,叫做SecondViewController.xib。
如果新的XIB和.h / .m文件的创建到目前为止是正确的,那么我将如何使用我的按钮“转到”或显示我的第二个视图呢?请记住,我仍然处于初级水平,我感谢您的帮助和耐心:)
我在主视图和我的SecondView之间可以区分的唯一区别在于头文件:
主视图头文件:
@interface ButtonToNewViewViewController : UIViewController
第二个查看标题文件:
@interface SecondViewController : NSObject
IBAction为:
-(IBAction)nextView:(id)sender
{
// go to new view
}
答案 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];
}