将委托从第三个设置为第一个viewController

时间:2015-06-17 20:58:16

标签: ios objective-c delegates protocols

我有三个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

这是描述它的图像:

enter image description here

1 个答案:

答案 0 :(得分:3)

您必须将A控制器传递给B控制器,以便在创建C时将其设置为C的委托。有点乱。

在这种情况下,尽管使用通知模型可能更有意义,其中Controller A侦听已在C上完成操作的NSNotification。