use*_*064 1 cocoa-touch objective-c uiviewcontroller uinavigationcontroller ios
我在UIViewController的内容视图中添加了一个自定义子视图.从该子视图中,我如何获得superview控制器的引用?谢谢
正确答案是"你做错了";-)
您不需要从视图中引用视图控制器,并且您当然不应该在其中一个视图中保留视图控制器 - 否则您将最终得到保留循环和泄漏内存.
Cocoa提供了多种模式来解决这个问题:
使用委托:定义一个名为DemoViewDelegate的协议,并向DemoView添加委托属性.然后让您的视图控制器实现此协议.重要提示:永远不应保留代表!您创建的任何委托属性都应设置为assign
.请参阅Apple的代表团文档或只是谷歌"委托模式".
使用响应程序链:调用UIApplication sendAction:to:from:forEvent:
并将to:
设置保留nil
为让您的操作消息自动将响应程序链路由到视图控制器.请参阅Apple的Responder文档和更详细的Action Messages文档.
使用通知:在此特定方案中不太常见,但您也可以让视图控制器侦听视图发送的通知.
归档时间: |
|
查看次数: |
257 次 |
最近记录: |