我正在学习斯坦福 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 的 segue,该连接将绘制存储在“CalculatorBrain”中的函数。这个 CalculatorBrain 是原始 CalculatorViewController 的模型。
提示#5 一直在谈论这样一个事实,即现在 GraphViewController 的模型与 CalculatorViewController 的模型不同,我无法理解他的意思。
我能够构建新 MVC 的唯一方法是在 GraphViewController 的 GraphView(视图)中创建一个协议,其中包含一个名为“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 的模型真的是他特别说的不是的原始计算器大脑!
我的意思是,在 segue 期间,我将来自原始 CalculatorViewController 的计算器模型实例分配给 Graphviewcontroller 计算器属性,然后使用协议将 Y 值从 GraphViewController 返回到 GraphView 意味着该模型GraphViewController 实际上只是原始的 CalculatorBrain 模型。