我有一个与UIViewController自定义类(ZocaloPlayerViewController)关联的xib文件
我试图以翻转水平
模式呈现UIViewController(在故事板中制作)但是我收到了错误:
这就是我试图呈现视图控制器的方式
ShowDetailsArtistAlbumViewController *vc = [[ShowDetailsArtistAlbumViewController alloc] initWithNibName:@"ShowDetailsArtistAlbumViewController" bundle:nil];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:^{
}];
但是我收到了这个错误...
Uncaught exception: Could not load NIB in bundle: 'NSBundle </var/mobile/Containers/Bundle/Application/57C2AD20-51DB-4C43-BB8F-2E8F22CD2E2A/MyMusicApp.app> (loaded)' with name 'ShowDetailsArtistAlbumViewController'
我正在尝试
[self.parentViewController presentViewController:vc animated:YES completion:^{
}];
但没有任何反应......
编辑: 我试过这种方式
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ShowDetailsArtistAlbumViewController *vc = [sb instantiateViewControllerWithIdentifier:@"ShowDetailsArtistAlbumViewController"];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:^{
}];
视图控制器已呈现,但我得到的是黑色视图,但内部没有任何内容
答案 0 :(得分:1)
你说“我有一个xib文件关联”,但问题是你没有。运行时正在查找名为 ShowDetailsArtistAlbumViewController.xib 的xib文件,但您没有。您需要重命名 xib 文件以符合运行时的期望。
或者,您可能错误地创建了视图控制器。你这么说:
ShowDetailsArtistAlbumViewController *vc =
[[ShowDetailsArtistAlbumViewController alloc]
initWithNibName:@"ShowDetailsArtistAlbumViewController" bundle:nil];
这就是为什么运行时认为你有一个名为 ShowDetailsArtistAlbumViewController.xib 的笔尖 - 你告诉它,就在那条线上!
如果实际上有一个名为 ShowDetailsArtistAlbumViewController.xib 的笔尖,那就没问题了。你的问题是没有。你已经对运行时撒了谎,所以很自然地崩溃了。
如果您确实想在故事板中使用视图控制器,那么不如何访问该实例。您正在做的是创建一个不同的实例。如果您想要故事板中的实例,则需要与故事板交谈并将其告诉instantiateViewControllerWithIdentifier:
。