私は、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
要約すると、以前の課題では通常の電卓を作成するように求められていましたが、今回の課題では、この電卓を Nav コントローラーにプッシュし、その CalculatorViewController から "CalculatorBrain" に格納された関数をプロットする GraphViewController へのセグエを作成するよう求められています。この CalculatorBrain は、元の CalculatorViewController のモデルでした。
ヒント 5 は、GraphViewController のモデルが CalculatorViewController のモデルとは異なるという事実について話し続けており、それが何を意味するのか理解できません。
新しい MVC を構築できた唯一の方法は、GraphViewController の GraphView (ビュー) に ID 型の「dataSource」というオブジェクトを使用してプロトコルを作成することです。次に、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 のモデルは、彼が具体的にそうではないと言った元の Calculator Brain であることを意味します。
つまり、セグエ中に、Graphviewcontroller 計算機プロパティに元の CalculatorViewController の計算機モデル インスタンスを割り当て、プロトコルを使用して Y 値を GraphViewController から GraphView に返すという事実ではありません。 GraphViewController は、元の CalculatorBrain モデルにすぎません。