我正在创建一个运行计算器界面的UIViewController
,而另一个UIViewController
处理绘制图表。
当用户按下图形按钮时,计算器会提示图形重绘。然后,图形将对计算器上的协议方法执行回调,以获取每个给定x坐标的y值。
我想知道处理这种通信的标准方法是什么?我觉得我应该可以在setNeedsDisplay
上调用类似于UIViewController
的内容(我知道这实际上只是UIView
方法),但我感觉我是将不得不用类似的方法编写另一个协议。我缺少某种updateViewController
方法吗?
理想情况下,我希望我的计算器UIViewController
仅将图表知道为UIViewController
,而图表通过我定义的协议知道计算器。
答案 0 :(得分:1)
据我所知,UIViewController中没有任何内容可以完全满足您的需求。你可能需要按照你的建议做一些协议,然后[yourViewController.view setNeedsDisplay:]。
希望有所帮助。
答案 1 :(得分:1)
有很多方法可以做到这一点,之前已经在这里提出过。例如:
iPhone how to pass data between several viewcontrollers
在您的特定情况下,我会使用NSNotification。在viewController中订阅它需要重绘并发布来自另一个的通知。
答案 2 :(得分:1)
你有几种方法可以做到这一点。
在您的情况下,KVO似乎是最好的选择。基本上,你的图表在计算器界面上绘制取决于(如果我理解正确的话),所以你观察一些变量(读取键)进行更改。请看this document to learn more。
KVO也可以让您优化图形绘图,因为您可以获得先前的值,新值等。事实上,根据定义:
键值观察是一种机制,允许对象通知其他对象的指定属性的更改。