我知道 Apple 开发文档、我拥有的其他书籍以及 stackoverflow 等资源中有很多关于代表主题的内容。但我仍然没有得到它。
我最近在斯坦福的 CS193P Winter 2010 系列中观看了关于导航视图控制器等的讲座,在那次讲座中,他们讨论了在视图控制器堆栈上传递数据,这很容易。但是他们简要提到了理想情况下,您最好使用委托/协议“向后”传递数据(例如,从详细视图控制器到列表视图控制器),但他们没有进行演示或发布示例代码。
我已经阅读并搜索了这个确切场景的示例,因此我可以围绕委托/协议的使用进行思考,但找不到它。这是我正在玩的一些伪代码。它应该实现“向后”传递数据吗?
myListController : UIViewController <SetDataInParent> {
// when pushing detail controller onto stack,
// set DetailController delegate = self
}
myDetailController : UIViewController {
//header file
@protocol SetDataInParent <NSObject>
- (void)willSetValue:(*NSString);
@end
@interface myDetailController {
id <SetDataInParent> delegate;
}
@end
// class/m file
@implementation
@synthesize delegate;
- (void)willSetValue:(*NSString) {
// code here that would take argument
// from detail controller and set
// a value or text field to that
// argument in list controller
}
// send message to list controller class
- [delegate willSetValue:string];
@end
}