1つのデリゲートExampleDelegateがあり、1つのUITableViewControllerと詳細UIViewControllerの両方がそのデリゲートを実装しています。
@interface ClassA : UITableViewController <ExampleDelegate>
と:
@interface ClassB : UIViewController <ExampleDelegate>
と委任:
@protocol ExampleDelegate <NSObject>
-(void)notifyUser;
@end
@interface Example : NSObject
@property (nonatomic, retain) id delegate;
-(id)initWithDelegate:(id<ExampleDelegate>) delegate;
@end
最初はClassAからのデリゲートのインスタンスを初期化しており、正常に機能していますが、ClassBに移動すると、ClassAに戻ったときにデリゲートのインスタンスも1つ作成しているため、デリゲートインスタンスはClassBから保持されます。 ClassB内の関数は、ClassAの関数の代わりに常に呼び出されます。誰かが私が間違っていることとこれを機能させる方法を指摘できますか?