我已经将UIViewController子类化为所有UIViewControllers提供了通用功能(例如我重写了viewDidLoad方法)。我的应用程序使用一组视图控制器,这些控制器安排在标签栏控制器和导航控制器中。一切都很好,除了我有一个UITableViewController的事实。我想继承它,但我的自定义MyUIViewController。我能够通过实现数据源和委托协议来使表工作:
@interface MaschinenTableViewController : MyUIViewController <UITableViewDataSource, UITableViewDelegate>
但是在这种情况下,我无法访问UITableViewController属性。例如,我无法更改表行选择的行为,因为self是MyUIViewController而不是UITableViewController:
self.clearsSelectionOnViewWillAppear = YES;
是否有访问这些属性的变通方法?
答案 0 :(得分:2)
在这种情况下,您需要在标题中添加UITableView变量并在viewDidLoad中正确设置,并将其添加到视图中。从这一点来看,它将作为一个UITableViewController工作(基本上就是它所做的一切!)
答案 1 :(得分:1)
你也可以将UITableViewController子类化为MyUITableViewController,实现你想要的行为,然后将MyUITableViewController作为变量放到你的MyUIViewController中。
答案 2 :(得分:0)
与使用委托提到的Simon Lee相同。
但是没有将索引存储在任何地方,在didSelectRowAtIndexPath方法的末尾称为deselectRowAtIndexPath。到目前为止,对我来说没有任何问题。