ios/iphone sdk 表单管理最佳实践

Posted

技术标签:

【中文标题】ios/iphone sdk 表单管理最佳实践【英文标题】:ios/iphone sdk form management best practices 【发布时间】:2011-06-03 16:57:28 【问题描述】:

我正在开发一个涉及大量表单的 iPhone 应用程序。目前,我为每个设置页面都有一个 ViewController 类,它有一个加载了可能设置的 UITableView。当有人点击一个设置时,他们会被带到一个新视图以输入表单值,或者允许在适当的位置输入内容。

保持干燥的最佳方法是什么?这个实现的哪些部分可以实现一次并重复使用?

当有人点击进入新视图的设置选项时,我如何创建此视图并根据代码中的数据类型(uitextfield 或选取器或其他内容)添加文本字段?

【问题讨论】:

【参考方案1】:

您可以通过编程方式:

create view hierarchy

UIButton

UILabel

你明白了。

但是,我建议让您的逻辑适用于一些情况,然后当您发现自己一遍又一遍地输入相同的内容时,哪些部分是多余的应该会变得很明显。此时,重构以将冗余代码转换为可重用的形式。

HTH。

【讨论】:

+1 代码优先,然后重构。编写两种形式,重构以捕获共性(如果不是柔术技巧),然后添加第三种形式,等等。【参考方案2】:

如果您有一个 tableView,流程是在您的 tableView 委托的 didSelectCell 方法中创建所选设置的 viewController 并将其推送到当前 viewController 的导航控制器。

这是一个示例:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    [self.navigationController pushViewController:[self settingsViewControllerAtIndexPath:indexPath] animated:YES];

所以你必须实现这个方法:

 - (UIViewController*)settingsViewControllerAtIndexPath:(NSIndexPath *)indexPath;

wich 将返回 viewController 管理与您的根 tableView 的选定行关联的设置。

如果您的表单非常静态,您应该考虑使用 xib 以尽量减少所需的代码量。这不是您“如何保持干燥”的完美答案,但它足够整洁;)

祝你好运。

【讨论】:

以上是关于ios/iphone sdk 表单管理最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

IOS SDK - xcode interface builder - 管理许多对象的最佳实践是啥?

SwiftUI / iOS / iPhone如何在存储之前加密数据/图像以及在哪里/如何在本地存储,一般最佳实践?

最佳实践丨云开发CloudBase多环境管理实践

使用 Paypal REST SDK 最佳实践进行单元/模拟测试

视频点播最佳实践使用OSS SDK上传视频到点播

Coldfusion 中的多步骤表单都有哪些最佳实践?