2013-03-08 75 views
0

我在使用Storyboard并在我的iPad应用程序中用户点击“登录”时创建弹出窗口。每种登录类型都有自己的ViewController,需要更多的popover控制器。将新内容加载到UIPopoverController中

让主视图控制器生成所有弹出窗口内容,或者更换一个弹出窗口控制器的内容是否合适?

例如(我会尝试用文字drawing_表示这一点)

1) MainVC - >酥料饼( “登录与电子邮件”, “通过Facebook登陆” 等。) MainVC < - 用户点击按钮 MainVC - >酥料饼(电子邮件文本字段,密码文本字段) MainVC < - 用户输入的东西...

2) MainVC - >酥料饼( “登录与电子邮件”,“日志In With Facebook“等。) Popover - >替换内容(加载视图控制器的文本字段) 新内容 - >处理程序UITextField输入

我已经选择了1,因为它很容易实现,尽管选择2似乎更有组织。你认为更好的练习是什么?

回答

0

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

使用独立的视图控制器设置,每个场景可以针对其内容进行最佳布局,包括使用动态约束。所有内容都记录在故事板中,并且有更少的运行时间代码可以清理。对我而言,最好在故事板上有一些混乱,而不是在代码中。你可能有不同的优先级。

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

+0

涉及UI的任何内容都不是性能问题:它为什么不是性能问题? – 2013-03-08 21:07:23

+0

我对性能的评论意味着与用户输入密钥或手势的时间相比,这些方法可能执行的任何差异都完全可以忽略不计。登录是一种“一劳永逸”的行为,而不是重复的事情。延迟当然是一个问题,网络登录不应该阻止主线程。 – jbbenni 2013-03-09 01:09:59