Как получить доступ к свойствам UITableViewController при создании подклассов из UIViewController? - PullRequest
2 голосов
/ 21 октября 2011

У меня есть подкласс UIViewController, чтобы обеспечить общую функциональность для всех UIViewController (например, я переопределяю метод viewDidLoad). Мое приложение использует набор контроллеров представления, которые расположены внутри контроллера панели вкладок и в контроллерах навигации. Все в порядке, кроме того, что у меня есть один UITableViewController. Я хотел бы подкласс не это, но мой пользовательский MyUIViewController. Я могу заставить таблицу работать, внедрив источники данных и протоколы делегатов:

@interface MaschinenTableViewController : MyUIViewController <UITableViewDataSource, UITableViewDelegate>

Однако в этом случае у меня нет доступа к свойствам UITableViewController. Например, я не могу изменить поведение выбора строки таблицы, потому что self - это MyUIViewController, а не UITableViewController:

self.clearsSelectionOnViewWillAppear = YES; 

Есть ли обходные пути для доступа к этим свойствам?

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

В этом случае вам нужно будет добавить переменную UITableView в заголовок и установить ее соответствующим образом в viewDidLoad, и добавить ее к вашему представлению. С этого момента он будет работать как UITableViewController (по сути, это все, что он делает!)

Взгляните на мою статью, которая использует этот подход.

1 голос
/ 21 октября 2011

Вы также можете создать подкласс UITableViewController как MyUITableViewController, реализуя требуемое поведение, а затем поместить MyUITableViewController как переменную в свой MyUIViewController.

0 голосов
/ 21 мая 2014

То же самое, что Саймон Ли , упомянутый с использованием делегата.
Но без сохранения индекса где-либо, в конце метода didSelectRowAtIndexPath, вызванного deselectRowAtIndexPath. До сих пор у меня не было проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...