iphone - Storyboard是否强制您编写难看的代码?

标签 iphone ios storyboard segue

我一直在用 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/

相关文章:

iphone - 在标签栏前面放一个 View

ios - 有没有办法检查通过 nib 加载的 View 以查找 ImageView 中图像的资源名称?

ios - 无法检索数据并在 UIBarButton 中使用它 - Firebase Swift 3

ios - WKWebView 可水平滚动

storyboard - 如何在 Swift 中将类分配给自定义 UIView?

ios - Storyboard导航 - 从堆栈中推送和删除

iphone - 将简单数据写入iphone沙箱?

iphone - 如何在 UINavigationController 和 UITabBarController 内翻转 View (使用 UIModalTransitionStyleFlipHorizo​​ntal)

iphone - 如何在 3.2 中使用 iPhone 模拟器(不是 iPad 模拟器)

ios - 为什么 FOO View 的自动布局约束设置在主视图上,而不是 FOO View 本身?