2个故事板之间的过渡
Posted
技术标签:
【中文标题】2个故事板之间的过渡【英文标题】:Transition between 2 storyboards 【发布时间】:2011-11-29 12:24:18 【问题描述】:我的应用中有 2 个故事板文件,我想在一个中的 ViewController 和另一个中的 ViewController 之间进行转换。我已经连接了一个 IBAction 以响应第一个 ViewController 上的按钮按下,它调用 AppDelegate 中的一个方法。我已验证此信号到达 AppDelegate 方法。
这是我在 AppDelegate 中的相关方法,但是没有发生转换。谁能告诉我为什么,或者有 2 个故事板是一个愚蠢的想法?
-(void) presentSecondViewController
UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController* mainViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"main_viewcontroller"];
UIStoryboard* secondStoryboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil];
UIViewController* secondViewController = [secondStoryboard instantiateViewControllerWithIdentifier:@"second_viewcontroller"];
[mainViewController presentViewController: secondViewController animated:YES completion: NULL];
【问题讨论】:
【参考方案1】:您创建第一个故事板的初始视图控制器的第二个实例。该实例从未显示在屏幕上,因为它与已经显示的不同,因此可能不会显示您的第二个视图控制器。您需要已经显示视图控制器的实例。最好的方法是将您的实现更改为
-(void) presentSecondViewControllerFromViewController:(UIViewController *)sourceController
UIStoryboard* secondStoryboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil];
UIViewController* secondViewController = [secondStoryboard instantiateViewControllerWithIdentifier:@"second_viewcontroller"];
[sourceController presentViewController: secondViewController animated:YES completion: NULL];
并通过传递包含按钮的视图控制器来调用它。
【讨论】:
嗨,TriPhoenix,非常感谢,我很高兴地报告这个作品就像一个魅力。可以将单独的故事板及其相关代码放入其他项目并以这种方式重用,这非常棒。以上是关于2个故事板之间的过渡的主要内容,如果未能解决你的问题,请参考以下文章