MVC和它们之间的通信.我错过了什么?

sim*_*nwh 1 iphone model-view-controller cocoa-touch object objective-c

嘿所有,试图学习目标-c.它很顺利,直到我意识到我错过了一个链接.

当建立在MVC的精神中时,我理解它,因为你的模型和视图永远不应该互相交谈.

我有这个问题,我现在搞乱了.

  • 包含多边形类的模型.包含具有numberOfSides等属性的多边形对象.

  • 控制器,读取一些UI元素并修改模型.例如numberOfSides.

  • 一个视图,包含一个视图绘制多边形.

现在,这就是问题出现的地方.视图需要有关模型中对象的信息.我怎么做到的?我尝试了一些IBOutlet,但从来没有让它工作.

我最终为视图创建了一个可以包含numberOfSides的属性.然后我会使用一个控制器方法来调用view方法并设置numberOfSides.

我希望你们中的一些人能够为我澄清这一点并告诉我你应该如何继续这样做.

谢谢大家和晚安!:)

Dav*_*ong 8

Cocoa中的MVC与传统的MVC略有不同,所以我将以Cocoa的方式回答.

你有一个控制器对象,它有一个指向你的Polygon对象的指针.您的控制器还应该有一个指向您的视图的指针(最有可能通过IBOutlet).随着多边形的变化(无论是numberOfSides还是其他),控制器需要知道这一点并将信息传递给视图.同样,如果允许视图更改numberOfSides(假设您有一个滑块来增加边数),则控制器需要知道该更改并将其传递给Polygon对象.

基本上,控制器的目的是将信息从视图传递到模型,并确保它们保持同步.