使用StoryBoards时,我是否允许使用presentViewController呈现视图控制器:animated:completion:?

时间:2012-12-06 21:02:32

标签: iphone ios storyboard segue

我想知道,当我使用故事板时,我是否仍然可以使用presentViewController:(UIViewController *) animated:(BOOL) completion:^(void)completion方法呈现视图控制器?

或者我必须使用segues吗?

在我的项目中,有一个VC可以由任何其他来自洞穴应用程序的VC呈现,所以如果我使用segues,那么这个VC就会有20个segue。

谢谢。

2 个答案:

答案 0 :(得分:4)

这应该仍然有效。在调用该方法之前,您可以使用instantiateViewControllerWithIdentifier:从其故事板定义创建视图控制器。

答案 1 :(得分:1)

您基本上可以将StoryBoard ID分配给您想要由任何其他UIViewController呈现的UIViewController。

StoryBoard ID

然后你必须在你希望它呈现它的UIViewController的.h文件的顶部导入UIViewController子类,例如我在这里我想要呈现的BaseViewController和InfoViewController:

#import <UIKit/UIKit.h>
#import "InfoViewController.h"

@interface BaseViewController : UIViewController
{
    InfoViewController *InfoViewController;
}

@property (nonatomic, strong) InfoViewController *InfoViewController;

然后在.m文件中你必须合成它并输入实现代码。我在这里使用一个按钮来显示InfoViewController,其中 IBAction 名为 ShowInfoAction

    @synthesize InfoViewController = _InfoViewController;

    - (IBAction)ShowInfoAction:(id)sender {
        InfoViewController *InfoVC = [self.storyboard instantiateViewControllerWithIdentifier:@"GiveItAnIDHere"];
        [self presentViewController:InfoVC animated:YES completion:NULL];
    }