我一直在用 xib 文件开发所有东西,因为我们需要支持 iOS4。
现在我们终于只支持 iOS5 和 iOS6,所以我决定尝试一下 Storyboard,所以一切都很好很容易,但我发现自己做了很多这样的代码:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"AddPlayer"]) { //Ugly
UINavigationController * navigationController = segue.destinationViewController;
PlayerDetailViewController * playerDetailsViewController = [navigationController viewControllers][0]; //Super Ugly
playerDetailsViewController.delegate = self;
}
}
我不了解你们,但我发现这段代码非常丑陋且容易出错。
有没有更好的方法来使用 Storyboard?我应该回到 xib 文件吗?
最佳答案
在我工作的最后一个应用程序中,我经常使用 Storyboard,是的,我同意样板代码在一段时间后变得非常烦人,但据我所知使用 prepareForSegue
是使用 segues 时传递参数的唯一方法。
您不能从 Storyboard 本身为自定义 View Controller 分配属性/委托(delegate)。
- 如果我只针对 iOS 5 和 6,我会回去使用 XIB 吗? 它 取决于。
如果我必须构建一个中小型应用程序(没有太多的 View 并且它们之间没有太多的交叉导航)我肯定会使用 Storyboard。但是,当您有很多 View 并在它们之间来回导航时,保持 Storyboard 美观和整洁真的变得很复杂,并且感觉就像您在强制自己使用实际上不是最好的东西。
另一方面,我觉得 Storyboard 可以让您在从头开始时更轻松地了解应用程序的流程和整体外观,您甚至可以使用它们来创建看起来像真实应用程序的模型
所以从本质上讲,它归结为您在开始项目时的需求。
编辑:
另一件需要考虑的事情:如果您使用 SVN/Git 或任何其他 VCS 与团队合作, Storyboard文件冲突是彻头彻尾的问题。
关于iphone - Storyboard是否强制您编写难看的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166747/