假设 iOS 应用程序显示一个元素,单击该元素会调用该元素的操作菜单(例如 UIActionSheet)。问题是,许多可点击元素(例如这个元素)可能出现在应用程序的每个 View 中,因此在任何情况下都必须处理操作菜单及其委托(delegate)。
例如,可点击元素可能是某些产品的照片(带有图像背景的 UIButton),它可能出现在许多不同的屏幕中,当点击时,用户会看到诸如“购买”、“查看详情”等选项, 等等。
您将如何以模块化和可重用的方式设计/实现这种具有相关行为的组件?
重要的是将该功能保留在一组独立的类中,这些类可以轻松地单独测试并在需要时打开/关闭,并且不需要向可能使用该功能的每个 Controller 插入代码。
谢谢!
最佳答案
如果您要实现一个可以出现在多个 View 中的应用范围的 UI 元素,我会将您的 UIViewController(即 ABCViewController)子类化。我通常在每个项目开始时都这样做,以防万一我需要在整个应用程序范围内实现某些东西,并且我的所有 View 都是该 View Controller 的子类,除了头文件中的一个词之外没有任何代码更改。然后在您的 ABCViewController 中实现一个用于显示菜单的函数和一个将其关闭的函数。与 Singleton 类相比,我发现内存管理对象和回调到 ViewController 更容易,而无需处理委托(delegate)。
关于objective-c - iOS - 如何设计一个出现在所有 View 中的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13034686/