Я прохожу курс Stanford Fall 2011 iOS: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/
Я выполняю задание № 3: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/assignments/Assignment%203_2.pdf
Подводя итог, предыдущие назначения просили создать обычный калькулятор, и теперь это задание просит нас передать этот калькулятор в контроллер навигации и создать переход от этого CalculatorViewController к GraphViewController, который будет строить график функции, хранящейся в «CalculatorBrain». Этот CalculatorBrain был моделью для исходного CalculatorViewController.
Подсказка №5 продолжает говорить о том, что теперь модель для GraphViewController отличается от модели CalculatorViewController, и я не могу понять, что он имел в виду под этим.
Единственный способ, которым я смог построить новый MVC, - это создать протокол в GraphView (представлении) GraphViewController с объектом с именем «dataSource» типа ID. А затем в GraphViewController: принятие этого протокола, создание экземпляра GraphView и установка себя в качестве источника данных:
-(void) setGraphView:(GraphView *)graphView
{
_graphView=graphView;
self.graphView.dataSource=self;
}
А затем в исходном CalculatoViewController, используя prepareForSegue для передачи программы в GraphViewController:
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"Graph"])
{
GraphViewController *myGraphViewController = segue.destinationViewController;
myGraphViewController.myCalculator=self.myCalcBrain;
}
}
Так что, похоже, все работает нормально. Так что, если это сработает, это означает, что модель GraphViewController на самом деле является исходным мозгом калькулятора, о котором он специально сказал, что это не так!
Я имею в виду не тот факт, что во время перехода я назначаю свойству калькулятора Graphviewcontroller экземпляр модели калькулятора из исходного CalculatorViewController, а затем использую протокол для возврата значения Y из GraphViewController в GraphView означает, что модель для GraphViewController на самом деле всего лишь оригинальная модель CalculatorBrain.