从 XIB 中重构控件和功能的最佳实践

Posted

技术标签:

【中文标题】从 XIB 中重构控件和功能的最佳实践【英文标题】:Best Practices for refactoring controls and functionality out of a XIB 【发布时间】:2011-03-08 06:19:06 【问题描述】:

我有一个常规的自定义 UIViewController,它加载常规的 iPhone 屏幕大小的 XIB。但是我在 XIB 中有一个subview,它由几个组件(UILabelUITextFieldUIButton)组成,我想将其分解为一个单独的 XIB,并将控制这些组件的逻辑移出UIViewController,可能是自定义 UIView 对象,该对象将加载自定义 XIB。

我搜索了 Apple 文档但运气不佳,并在此处搜索了答案,但我似乎找不到创建自定义 UIView、在 XIB 中实例化它并将其放入另一个的干净方法西布。有没有一种干净的方法可以将此视图移到它自己的 XIB 中,并将控制它的逻辑从自定义 UIViewController 中移出,以便我可以在我的应用程序的多个屏幕上使用它?

(我不赞成将此功能放入自定义UIView 的想法,这对我来说似乎是一种显而易见的方式。我愿意以任何干净的方式将其纳入它自己的组件。)

【问题讨论】:

【参考方案1】:

如果你想了解 xib 中的多个视图,你可以通过这个

Multiple Views within one XIB - iPhone SDK

这可能会对你有所帮助。

如果您想在没有视图控制器的情况下在 xib 中创建视图,请通过此

Using a xib file without initializing a view controller

我认为这应该很有用

【讨论】:

第一个链接描述了在一个 XIB 中具有多个视图,并且确实适用。第二个链接描述了以编程方式加载 XIB,但没有提到将控制 XIB 中组件的代码放在哪里。我希望能够从界面生成器中的另一个 XIB 将 UIView 加载到它自己的 XIB 中,然后使用专门为该视图编写的方法操作该视图中的控件。希望这是有道理的:S

以上是关于从 XIB 中重构控件和功能的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

在生产中重构数据库的最佳实践?

XAML: 自定义控件中事件处理的最佳实践

最佳实践是使用模型还是简单属性?

XAML: 自定义控件中事件处理的最佳实践

使用 AutoLayout 的最佳实践是啥?

在PHP函数/方法中返回的最佳实践