无法使用故事板在UIViewControllers之间切换

时间:2012-10-01 12:47:08

标签: objective-c ios xcode presentmodalviewcontroller

我是客观C的新手所以请原谅我这是一个愚蠢的问题(我已经搜索过了!)

我在xcode(4.4.1)中使用故事板,我有2个UIViewControllers 我试图以编程方式在它们之间切换(不确定这是否是正确的术语?)

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"BookingView"];
    [self presentModalViewController:vc animated:YES];

上面的代码在我的项目中完美地运行,但是当我尝试调用时,如果在第一个UIViewController中的viewdidload方法中的if()中它不起作用。求救!

2 个答案:

答案 0 :(得分:1)

您不应在viewDidLoad:方法中执行此类任务。 你试图以一种模式方式呈现一个视图控制器,它仅在内存中分配并加载,但它还不可见。这意味着您的演示文稿无效。您应该将代码移动到viewDidAppear:

我建议您阅读本指南,了解有关视图控制器委派的基础知识:http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40007457

答案 1 :(得分:0)

为什么不self.storyboard代替[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

假设所有视图控制器都来自同一个故事板:)