我想知道,当我使用故事板时,我是否仍然可以使用presentViewController:(UIViewController *) animated:(BOOL) completion:^(void)completion
方法呈现视图控制器?
或者我必须使用segues吗?
在我的项目中,有一个VC可以由任何其他来自洞穴应用程序的VC呈现,所以如果我使用segues,那么这个VC就会有20个segue。
谢谢。
答案 0 :(得分:4)
这应该仍然有效。在调用该方法之前,您可以使用instantiateViewControllerWithIdentifier:
从其故事板定义创建视图控制器。
答案 1 :(得分:1)
您基本上可以将StoryBoard ID分配给您想要由任何其他UIViewController呈现的UIViewController。
然后你必须在你希望它呈现它的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];
}