在iOS 7中以编程方式调用故事板场景(不需要segue)?

时间:2014-08-04 06:17:23

标签: iphone ios7 xcode5

任何人都可以提供源代码来在iOS 7中以编程方式调用storyboard而不使用任何segue。我是iPhone开发的新手。 预先感谢 我这样使用:

UIViewController *pageOneController = [[UIViewController alloc]init] ;
[self.presentedViewController:pageOneController animated:YES completion:nil];

NSString * storyboardName = @"Main.Storyboard";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"pageOne"];
[self presentViewController:vc animated:YES completion:nil];

我收到此错误: [self.presentedViewController:pageOneController animated:YES completion:nil];有错误说没有可见的@interface为' UIViewController'声明选择器':动画:完成:'

2 个答案:

答案 0 :(得分:1)

您获得的错误与Storyboard无关。你的代码是一个很大的混乱,这是崩溃你的应用程序的行:

[self.presentedViewController:pageOneController animated:YES completion:nil];

从您可以理解的错误消息中,presentedViewController属性不响应此选择器animated:completion:。所以你在这里做错了可能是引用presentedViewController属性而不是调用presentViewController方法。

尝试使用以下方法修复此行:

[self presentViewController:pageOneController animated:YES completion:nil];

请注意,我删除了selfpresentViewController之间的点,并从presentedViewController更改为presentViewController。这是正确的调用,我假设self是某种UIViewController类。

答案 1 :(得分:0)

看看这个:

UIStoryboard *theStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *theViewController = [theStoryboard instantiateViewControllerWithIdentifier:@"viewController"];

然后你可以使用模态演示来推动视图。

但我的建议是摆脱故事板并直接使用Objective-C编写接口代码。您将拥有更好的性能和对它们的控制权。如果您正在学习Objective-C编程,那么您将找到编码界面,比使用Storyboard创建编码界面更有趣和更有教育意义。