我有三个viewControllers
。当我在第三个视图控制器上时,我想向第一个视频控制器发送消息。我正在使用protocol
并尝试为此设置delegate
。
viewControllerC.h
@protocol ViewControllerCDelegate
- (void)performAction;
@end
...
@property (nonatomic, strong) id<ViewControllerCDelegate> delegate;
viewControllerA.h
@interface ViewControllerA : UIViewController <ViewControllerCDelegate>
viewControllerA.m
...
- (void)performAction {
NSLog(@"Action was performed");
}
所以唯一的问题是,我无法将delegate
从第三个设置为第一个。如何将viewControllerC's
代理设置为viewControlerA
?
这是描述它的图像:
答案 0 :(得分:3)
您必须将A控制器传递给B控制器,以便在创建C时将其设置为C的委托。有点乱。
在这种情况下,尽管使用通知模型可能更有意义,其中Controller A侦听已在C上完成操作的NSNotification。