【问题标题】:Loading new content into UIPopoverController将新内容加载到 UIPopoverController
【发布时间】:2013-02-24 12:13:04
【问题描述】:

当用户点击“登录”时,我在我的 iPad 应用程序中使用 Storyboards 和 segues 创建一个弹出窗口。每种登录类型都有自己的 ViewController,需要更多的 popover 控制器。

让主视图控制器生成所有弹出框内容是否合适,或者更确切地说替换一个弹出框控制器的内容?

例如(我会尝试用文字绘图来表示这一点_)

1.) MainVC -> Popover(“使用电子邮件登录”、“使用 Facebook 登录”等) MainVC Popover(电子邮件文本字段,密码文本字段) MainVC

2.) MainVC -> Popover(“使用电子邮件登录”、“使用 Facebook 登录”等) 弹出框 -> 替换内容(使用文本字段加载视图控制器) 新内容 -> 处理 UITextField 输入

我选择了选项 1,因为它很容易实现,尽管选项 2 似乎更有条理。您认为更好的做法是什么?

【问题讨论】:

    标签: iphone ios ipad uistoryboard uistoryboardsegue


    【解决方案1】:

    任何一种选择都可以,任何涉及 UI 的东西都不是性能问题。因此,“正确”的答案可能取决于代码复杂性/清晰度等次要考虑因素。我投票赞成在 Storyboard 中创建单独的实例,而不是使用 rutnime 代码重新利用单个实例。

    通过单独的视图控制器设置,每个场景都可以针对其内容进行最佳布局,包括使用动态约束。一切都记录在情节提要中,并且需要整理的运行时代码更少。对我来说,最好在故事板上有一些混乱而不是在代码中。您可能有不同的优先事项。

    如果不同弹出框的 ViewControllers 共享许多行为,请使用继承来减少代码扩散。

    【讨论】:

    • 任何涉及 UI 的东西都不是性能问题:为什么它不是性能问题?
    • 我对性能的评论是说,与用户输入按键或手势所需的时间相比,这些方法的性能差异完全可以忽略不计。登录是一种“一次性完成”的操作,而不是重复执行的操作。延迟当然总是一个问题,网络登录不应该阻塞主线程。
    猜你喜欢
    • 2012-05-27
    • 1970-01-01
    • 2011-08-26
    • 2021-03-21
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多