从C班到A班的代表团

时间:2014-06-13 12:29:15

标签: ios objective-c delegates

从B类到A类的委托很容易,但是从C类到A类的委托呢?

我有一个根视图控制器(A)和一个菜单视图控制器(B),它包含一个表视图控制器(C)。 A类引用类B,B类引用C类。单击表格单元格时,我想通知A类此事件。

目前,通过授权,我只能到达B类。

C类:

@protocol ClassCDelegate
- (void)tableCellIsSelected:(NSInteger)index
@end

@interface ClassC : UITableViewController <UITableViewDelegate>
@property (weak, nonatomic) id<ClassCDelegate> delegate;
@end

A类:

#import "ClassB"
@interface ClassB : UIViewController <ClassCDelegate>  // Class C should not be imported in Class A

每个视图控制者应该只对其子女负责,而孩子应该只对其子女负责。我知道这可以通过Class CClass B以及Class BClass A的另一位代表来解决,但是有更好的方法可以解决这个问题吗? / p>

1 个答案:

答案 0 :(得分:0)

目前还不清楚你的程序正在尝试做什么,这就是为什么它几乎不可能回答。但是,我想到了三个选择。

  1. 初始化时添加对C类的A类引用。
  2. 也许AppDelegate引用了A类,您可以通过AppDelegate调用A类
  3. 使用键值观察