在我的情況,class C
是子類的UIViewController
,class A and B
是子類的UIView
,class A
有UIButton
。我寫下如下的代碼。iOS選擇器不適合我的情況,爲什麼?
class C:
B *b = [[B alloc] init];
[self.view addSubView:b];
A *a = [[A alloc] initWithTarget:self action:@Selector(methodX:)];
[b methodY:a];
在class B
:
- (void)methodY:(A *)a
{
[sef addSubView:a];
}
在class A
:
- (id)initWithTarget:(id)target action:(SEL)action
{
self = [super initWithFrame:frame];
UIButton *btn = [[UIButton alloc] init];
[btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[self addSubView:btn];
return self;
}
在class C
的methodX:
沒有執行。
我的代碼有問題嗎?
選擇器如何在objective-c中工作?
謝謝!
請檢查代碼,你可能有一些錯別字。你的意思是'A * a = [[A alloc] initWithTarget ...'。 –
在A – Warewolf
中放置methodX嘗試在頭文件中的上面一行「@interface A」中導入@class UIViewController。 – Warewolf