Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式从应用程序中的情节提要加载ViewController,其中包含多个情节提要_Ios_Objective C_Storyboard_Uistoryboard_Ios10 - Fatal编程技术网

Ios 以编程方式从应用程序中的情节提要加载ViewController,其中包含多个情节提要

Ios 以编程方式从应用程序中的情节提要加载ViewController,其中包含多个情节提要,ios,objective-c,storyboard,uistoryboard,ios10,Ios,Objective C,Storyboard,Uistoryboard,Ios10,我正在开发一个应用程序,该应用程序正在过渡到为应用程序的不同部分提供多个故事板。它们通过在适当的时间以编程方式加载而链接在一起 在用于点击UIButton的函数中,它应该以编程方式加载故事板。代码是这样的: - (void)loginTapped:(id)sender { UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Home.storyboard" bundle:nil]; UIViewController *vc

我正在开发一个应用程序,该应用程序正在过渡到为应用程序的不同部分提供多个故事板。它们通过在适当的时间以编程方式加载而链接在一起

在用于点击UIButton的函数中,它应该以编程方式加载故事板。代码是这样的:

- (void)loginTapped:(id)sender {
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Home.storyboard" bundle:nil];
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"homeStoryboard"];
    vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:vc animated:YES completion:NULL];
}
故事板的名称在函数中列出:

并被列为项目设置中的目标:

并具有相应的ID,如下所示:

然而,即使在设置了所有这些之后,我仍然会得到错误:

'NSInvalidArgumentException',原因:'在捆绑包NSBundle中找不到名为'Home.storyboard'的情节提要


我试着听从这篇文章的建议,但没有任何效果。如何加载此情节提要?

上述注释中提到的解决方案是在提供情节提要名称时不包括.storyboard

旧的

新的

试试这个:

 UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Home" bundle:nil];
要使用Objective c在ios中以编程方式调用任何ViewController:

代码中的yourDestinationViewController是视图控制器.h文件

您希望在程序中导入该viewcontroller.h文件,以便以编程方式调用视图控制器

要创建如下所示的属性

#import "viewcontroller.h"

@property viewController *yourDestinationViewController;

能否尝试以情节提要的名称删除.storyboard?因此,只需编写名为:@HomeTry和@Home的故事板,并让该方法计算出文件扩展名。@nathan,Phillip成功了,谢谢!
 UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Home" bundle:nil];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:Home bundle:nil];

yourDestinationViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@homeStoryboard]; 

[self presentViewController:vc animated:YES completed:^{}];
#import "viewcontroller.h"

@property viewController *yourDestinationViewController;