将代表从第三位设置为第一位 viewController
Setting the delegate from third to first viewController
我有三个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
?
这里有一张图片来描述它:
您必须将 A 控制器传递给 B 控制器,以便在创建时将其设置为 C 的委托。有点乱。
在这种情况下,尽管使用通知模型可能更有意义,其中控制器 A 侦听操作已在 C 上完成的 NSNotification。
我有三个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
?
这里有一张图片来描述它:
您必须将 A 控制器传递给 B 控制器,以便在创建时将其设置为 C 的委托。有点乱。
在这种情况下,尽管使用通知模型可能更有意义,其中控制器 A 侦听操作已在 C 上完成的 NSNotification。