我想为我的项目创建一个BaseViewController
类(继承自UIViewController
),它可以作为我项目中其他视图控制器的基类。这是为了添加诸如通用进度HUD,刷新按钮和网络更新机制,也许是可以由每个子类使用文本自定义的错误对话框等。
至关重要的是,我希望能够将此功能添加到UIViewController
子类和UITableViewController
子类中,但我无法将自己插入到UITableViewController
类层次结构中,因此我需要 aBaseUIViewController
和 a BaseUITableViewController
,但如果我这样做,我必须实现两次更改并使它们保持同步。
BaseViewController
为子类和子类都可以访问的公共代码提供一个单一位置的最佳方法是BaseTableViewController
什么?我只希望在我的代码中有一个必须处理常见任务的地方。
1)我考虑过使用具有关联引用的类别,但这里的问题是我需要自定义实现 ViewController 生命周期类,例如 viewDidLoad:,这不是一个好主意。
2)我可以完全跳过,并从 BaseViewControllerUITableViewController
构建自己的,自己实现&方法,但我不太想在这里跳过苹果的控制器实现。BaseTableViewController
tableView
delegate
datasource
3)我可以有一个BaseViewController
继承自UIViewController
,BaseTableViewController
继承自UITableViewController
,并将自定义方法调用放入ViewControllerBaseMethods
可以从两个“基本”文件调用的第三个文件中。可能仍然存在重复的属性,但至少方法代码会在一个地方。
这种类型的东西还有其他好的方法吗?