从另一个类的委托中访问IBOutlet

时间:2013-08-29 14:36:32

标签: ios objective-c

我无法访问IBOutlet。在A类中,我有一个将其委托设置为B类的scrollview。

A类标题

@property(nonatomic, strong) ClassB *B;

A类实施

self.B = [[ClassB alloc] init];

[_scrollview setDelegate:self.B];

现在,scrollview调用scrollViewDidScroll在ClassB中正确滚动

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

但我无法从scrollViewDidScroll访问在ClassB中声明的任何IBOutlet。他们只返回零。

3 个答案:

答案 0 :(得分:0)

这是因为您已在标头中将该属性声明为A类。在ClassA.h中更改以下行

@property(nonatomic, strong) ClassA *A;

这一行。

@property(nonatomic, strong) ClassB *A;

答案 1 :(得分:0)

您正在A类中创建您的委托对象(B)。这将有效,但可能您不会获得出口。由于委托和连接出口的对象将是两个不同的classB实例。所以你需要做的是在转到classB之前从classA(作为self)设置委托。

答案 2 :(得分:0)

要访问Outlets,您需要从NIB加载您的ClassB。

请参阅: - (NSArray *)loadNibNamed:(NSString *)name owner:(id)owner options:(NSDictionary *)options