Поскольку - (NSArray *)graphView:(S7GraphView *)graphView yValuesForPlot:(NSUInteger)plotIndex
является методом делегата, он должен быть реализован в вашем классе, который изображает из себя делегат объекта S7GraphView
. Вы не вызываете явно, вы определяете это как таковое в вашей реализации .m:
- (NSArray *)graphView:(S7GraphView *)graphView yValuesForPlot:(NSUInteger)plotIndex
{
if ( plotIndex == <some index value> )
return redArray;
else
return nil;
}
Я понятия не имею, что plotIndex
соответствует вашим различным цветным массивам, но вы должны понять.
Когда объекту S7GraphView
нужны эти данные, он вызывает этот метод delegate
.
Это мало чем отличается от реализации UITableViewDelegate
и UITableViewDataSource
методов. При вызове UITableView
метода -reloadData
ваш контроллер представления (при условии, что он является делегатом / источником данных таблицы) будет вызывать UITableViewCell
объекты через
.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = <... dequeue or created ... >.
/*
do some cell set up code based on indexPath.section and indexPath.row
*/
return cell;
}
Аналогично S7GraphView
Я уверен (у меня нет API, чтобы увидеть все, что он делает). В вашем методе IBAction
вы, вероятно, будете делать что-то вроде:
- (IBAction)histogram:(id)sender
{
// maybe you recalculate your red, green, and blue component arrays here and cache
// or maybe you calculate them when requested by the delegate method
// tell the S7GraphView it needs to update
// (not sure what the reload method is actually called)
[self.myS7GraphView reloadGraph];
}