2012-03-14 3 views
0

Итак, у меня есть UIViewController A, который добавляет UIView B в качестве подкласса. UIView B имеет UITableView. Я хочу, чтобы делегат прокрутки UITableView находился в UIViewController A. Как мне это сделать? На данный момент делегат scrollViewDidScroll находится внутри этого класса UIView. Есть ли способ, с помощью которого scrollViewDidScroll находится внутри viewController A и вызывается всякий раз, когда UITableView в UIView прокручивается?Получение контейнера/UIViewController UIView

+0

возможно дубликат [Стать UIScrollViewDelegate делегат UITableView] (http://stackoverflow.com/questions/1615345/become-uiscrollviewdelegate-delegate-for-uitableview) – Caleb

ответ

2

Сделать таблицуView доступной извне. Чем вы можете установить его в вашем ViewController А так:

// ClassB.h 
@property (nonatomic, readonly) UITableView* tableView; 


// In your UIViewControllerA.m 
// in loadView: or anywhere else 
self.viewB.tableView.delegate = self; 

Так результат: ваш ViewController является делегатом.

+0

у меня есть, что делегированы B – xonegirlz

+0

Нет, ты не понял. Я отредактировал свой ответ, чтобы сделать его более понятным. – calimarkus

0

Вид прокрутки и вид таблицы являются одним и тем же объектом - обратите внимание, что UITableView является подклассом UIScrollView. Этот объект имеет только один делегат, а не отдельные делегаты для материала таблицы и для материала прокрутки. Также обратите внимание, что UITableViewDelegate принимает UIScrollViewDelegate. Таким образом, объект, который вы задали как делегат таблицы, также получит сообщения UIScrollViewDelegate.

Теперь нет причин, по которым делегат вашей таблицы не может пересылать сообщения о прокрутке на какой-либо другой объект. Разумеется, вы должны сами это настроить. Итак, когда B получает сообщение -scrollViewDidScroll:, он может отправить эквивалентное сообщение A или что угодно. Я бы подумал дважды, прежде чем делать это, хотя ... Я бы попробовал только один объект (контроллер представления) нести ответственность за все, что связано с таблицей.