У меня есть View Controller, который инициализирует UIView в качестве своего вида. Это представление инициализирует другой UIView как подпредставление. Оба UIViews связываются с View Controller через делегат / протокол.
Каждый UIView создает экземпляр ViewController и делает его равным делегату:
ViewController *aDelegate = [[ViewController alloc] init];
self.delegate = aDelegate;
ПРОБЛЕМА. В View Controller есть переменная (int) selection, которая модифицируется обоими UIViews. Оба представления должны знать, как друг друга изменили переменную, но, поскольку у каждого есть свой экземпляр View Controller, обмен данными невозможен. Как бы я решил эту проблему?
Спасибо за тонну
РЕДАКТИРОВАТЬ: Питер упомянул назначение делегата при создании представлений, которое мне нравится, но как бы я это сделал для подпредставления, поскольку оно создается в UIView, а не в View Controller. PS. На самом деле это подпредставление подпредставления подпредставления, поэтому я могу создать их все в View Controller, а затем назначить его в качестве делегата?
Попытка назначить делегата следующим образом, но он постоянно падает, когда я пытаюсь вызвать метод ViewController из представления:
MyView *mainView = [[MyView alloc] initWithFrame:frame];
self.view = mainView;
mainView.delegate = self;
[mainView release];