Я использую модель MVC, но не могу получить данные, необходимые для представления, я пытаюсь использовать источник данных, поскольку представление никогда не должно владеть своими данными. Как правило, протокол используется для создания источника данных.
- У меня есть MVC: CalculatorBrain. [Hm] - CalculatorViewController. [Hm] - (представление .xib)
- У меня также есть MVC: GraphingView - GraphingViewController - (модель - это данные, которые я не могу получить)
Цель: когда я нажимаю кнопку на калькуляторе, он рисует функцию (например, х + 5 =), которая в данный момент отображается на дисплее. Часть калькулятора заботится о выражении / функции, отображении и т. Д., В то время как графическая часть должна рисовать. CalculatorViewController должен быть источником GraphingView , но данные всегда остаются нулевыми.
Это GraphingView.h с объявлением протокола:
@class GraphingView;
@protocol GraphingViewSource
- (float)getDataPoints:(GraphingView *)requestor;
@end
@interface GraphingView : UIView {
id <GraphingViewSource> source;
}
@property (assign) id <GraphingViewSource> source;
@end
CalculatorViewController.m реализует протокол, реализуя метод getDataPoints:. Заголовок CalculationViewController.h:
@interface CalculatorViewController : UIViewController <GraphingViewSource>
Нажатие кнопки, которая должна настроить источник данных:
- (IBAction)graphPressed:(UIButton *)sender
{
GraphingViewController *graphingVC = [[GraphingViewController alloc] init];
graphingVC.graphingView.source = self;
[self.navigationController pushViewController:graphingVC animated:YES];
[graphingVC release];
}
Нажатие на кнопку прекрасно открывает новый вид и т. Д., Но следующая строка кода возвращает только ноль (внутри GraphingView.m):
float result = [self.source getDataPoints:self];
Кажется, я не могу получить доступ к своему источнику данных ...