我无法使用协议从另一个类获取一些数据。我看不到如何在一个不与需要数据的 MVC 隔离的类中设置委托。我在 MVC 中创建协议并在包含我需要的数据的任意类中实现方法。但是如果没有对委托者 MVC 的引用,我看不到如何引用委托者 MVC 来设置委托,就像使用 segue.destinationViewController 时一样。
问问题
118 次
3 回答
1
像这样的东西?
@implementation MyViewController {
// keep a pointer to the data supplier class as long as this object exists
// so that it will continue to exist and send me delegate callbacks
SomeDataClass *myInstanceOfSomeDataClass; // instance variable to point to my data supplier
}
// ...
- (void)updateMyView {
if (myInstanceOfSomeDataClass == NULL) // I haven't created an instance yet
myInstanceOfSomeDataClass = [[SomeDataClass alloc] init];
SomeType *results;
if (instantResultsAreAvailable)
results = [myInstanceOfSomeDataClass getResults];
if (resultsAreOnlyAvailableFromDelegateCallback)
myInstanceOfSomeDataClass.delegate = self;
}
- (void) delegateCallbackMethod {
//...
}
@end
于 2012-11-30T17:49:17.997 回答
1
如果 MyViewController 可以创建 SomeDataClass 的实例,那么您可以在那里设置委托。如果控制器之间没有连接,那么您可以使用 NSNotification 代替。这是连接实例的一种完全匿名的方式——您发送一个通知,任何注册该通知的类都可以得到它。
于 2012-11-30T17:52:25.317 回答
0
你想将数据从一个视图控制器传递到另一个类?只需通过View Controllers 之间的 Passing Data
于 2012-11-30T17:21:07.423 回答