0

我是目标 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() 中调用 if 时,它不起作用。请帮忙!

4

2 回答 2

1

您不应该在 viewDidLoad: 方法中执行此类任务。您正在尝试以模态方式在另一个仅在内存中分配并加载但尚不可见的视图控制器上呈现视图控制器。这意味着您的演示文稿将无法正常工作。您应该将代码移动到 viewDidAppear:

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

于 2012-10-01T12:55:55.463 回答
0

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

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

于 2012-10-01T12:55:06.773 回答