如何从当前视图控制器的实现文件加载另一个视图控制器?

时间:2013-03-17 17:45:14

标签: iphone ios objective-c model-view-controller ios5

我需要创建一个具有登录/单身形式然后是自定义Google地图的应用程序。我是iOS编程的新手,并且试图非常快地学习这个应用程序所需的东西。

所以,我已经创建了登录表单的前端和后端,它可以工作。我有一个由“登录”按钮触发的动作,它会验证凭据,并触发错误或显示谷歌地图。

我想在另一个视图控制器中显示Google Map控制另一个xib文件。我创建了视图控制器和xib文件。

我的问题是如何从当前视图控制器的实现文件中放置的操作加载另一个视图控制器?

现在,我有这段代码:

UIViewController *mapViewController =
                [[BSTGMapViewController alloc] initWithNibName:@"BSTGMapViewController"
                                                           bundle:nil];

如何使其成为窗口的“根视图控制器”并且可能具有转换功能(考虑到我的逻辑是正确的:D)?

1 个答案:

答案 0 :(得分:17)

如果您想从另一个中打开ViewController,那么您应该在IBAction中将其定义为这样。最好将viewController作为属性。

<强> FirstViewController.h

@class SecondViewController;

@interface FirstViewController : UIViewController

@property(strong,nonatomic)SecondViewController *secondViewController;
@end

<强> FirstViewController.m

-(IBAction)buttonClicked:(id)sender{
    self.secondViewController =
                    [[SecondViewController alloc] initWithNibName:@"SecondViewController"
                                                               bundle:nil];
   [self presentViewController:self.secondViewController animated:YES completion:nil]; 

}

你应该在你的rootViewController类中将viewController设为AppDelegate

YourFirstViewController *firstViewController=[[YourFirstViewController alloc]initWithNibName:@"YourFirstViewController" bundle:nil];

self.window.rootViewController=yourFirstViewController;