从UIViewController进行子类化时如何访问UITableViewController属性?

时间:2011-10-21 08:22:30

标签: iphone objective-c uiviewcontroller uitableview

我已经将UIViewController子类化为所有UIViewControllers提供了通用功能(例如我重写了viewDidLoad方法)。我的应用程序使用一组视图控制器,这些控制器安排在标签栏控制器和导航控制器中。一切都很好,除了我有一个UITableViewController的事实。我想继承它,但我的自定义MyUIViewController。我能够通过实现数据源和委托协议来使表工作:

@interface MaschinenTableViewController : MyUIViewController <UITableViewDataSource, UITableViewDelegate>

但是在这种情况下,我无法访问UITableViewController属性。例如,我无法更改表行选择的行为,因为self是MyUIViewController而不是UITableViewController:

self.clearsSelectionOnViewWillAppear = YES; 

是否有访问这些属性的变通方法?

3 个答案:

答案 0 :(得分:2)

在这种情况下,您需要在标题中添加UITableView变量并在viewDidLoad中正确设置,并将其添加到视图中。从这一点来看,它将作为一个UITableViewController工作(基本上就是它所做的一切!)

看看at my article here which takes this approach.

答案 1 :(得分:1)

你也可以将UITableViewController子类化为MyUITableViewController,实现你想要的行为,然后将MyUITableViewController作为变量放到你的MyUIViewController中。

答案 2 :(得分:0)

与使用委托提到的Simon Lee相同。
 但是没有将索引存储在任何地方,在didSelectRowAtIndexPath方法的末尾称为deselectRowAtIndexPath。到目前为止,对我来说没有任何问题。