0

我无法使用协议从另一个类获取一些数据。我看不到如何在一个不与需要数据的 MVC 隔离的类中设置委托。我在 MVC 中创建协议并在包含我需要的数据的任意类中实现方法。但是如果没有对委托者 MVC 的引用,我看不到如何引用委托者 MVC 来设置委托,就像使用 segue.destinationViewController 时一样。

4

3 回答 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 回答