ios - 将委托(delegate)从第三个设置为第一个 viewController

标签 ios objective-c delegates protocols

我有三个 viewControllers .当我在第三个 View Controller 上时,我想向第一个发送消息。我正在使用 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委托(delegate)给 viewControlerA ?

这是一张图片来描述它:

enter image description here

最佳答案

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

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

关于ios - 将委托(delegate)从第三个设置为第一个 viewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30902268/

相关文章:

ios - 自定义 UICollectionReusableView 元素未显示

ios - 如何使用 Collection View 单元格转到下一个 View ?

ios - 为 UITableViewController 执行与核心数据联合的等效操作

ios - 多个 UIAlertControllers 在 Swift 中一个接一个地显示

ios - 在 Swift 中搜索字典数组以获取值

ios - 带有文本字段的 TableView 单元格

ios - 更改委托(delegate)方法的参数类型

ios - 如何在不打开 MailComposer 或 objective-c 中的新 View 的情况下通过代码发送邮件

objective-c - 在 Linux (Ubuntu) 上编译 Objective-C 项目

iphone - float 问题