我有很多viewcontrollers
,需要有一些与导航相关的常用功能。
之前我制作了一个基类BaseViewController
(扩展UIViewController
),它具有所有常用功能(比如在viewDidLoad
上执行某些任务等),而我的所有viewcontrollers
扩展{ {1}}。
问题是,我的某些BaseViewController
应该是viewcontroller
的子类和UIViewController
的某些子类,所以我不能使用上述方法。
一种方法是为两者编写基类并复制代码。有没有更好的方法没有重复代码。
答案 0 :(得分:2)
虽然您可以通过使用委托或帮助程序对象解决这个问题,但我会假设不使用UITableViewController
。它只是UIViewController
之上的一个非常轻的子类,提供了一个表格视图,符合代表和&数据源协议,并添加一个或两个属性供选择&刷新。
虽然我通常不会建议重新构建框架已经为您完成的某些事情,但如果您只是保留从公共基类继承的所有内容并添加表,则可能(在您的情况下)使您的代码更容易理解查看其中一个子类。
如果您确实认为这是一种合理的方法,UITableViewController
documentation概述会详细说明究竟是什么&实现这些行为的地方,因此模仿它的确切设置是微不足道的。
UIViewController
@interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, strong) IBOutlet UITableView *tableView;
@end
在故事板中,从对象库中拖出“表格视图”并将其放在文档大纲中的视图控制器场景的“视图”顶部 - 这将替换根视图UITableView
。
然后把它连接起来:
view
和tableView
个出口delegate
和dataSource
出口。完成 - 不需要魔法。