Mat*_*s D 3 iphone xcode storyboard uikit ios
我的应用程序中有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];
Run Code Online (Sandbox Code Playgroud)
}
您创建第一个故事板的初始视图控制器的第二个实例.该实例从未在屏幕上显示,因为它与已经显示的实例不同,因此可能不会显示您的第二个视图控制器.您需要已显示视图控制器的实例.最好的方法是将实现更改为
-(void) presentSecondViewControllerFromViewController:(UIViewController *)sourceController
{
UIStoryboard* secondStoryboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil];
UIViewController* secondViewController = [secondStoryboard instantiateViewControllerWithIdentifier:@"second_viewcontroller"];
[sourceController presentViewController: secondViewController animated:YES completion: NULL];
}
Run Code Online (Sandbox Code Playgroud)
并通过传递包含该按钮的视图控制器来调用它.