Как я могу отправить событие кнопки - UIControlEventTouchUpInside - PullRequest
3 голосов
/ 19 сентября 2011

В моей простой программе у меня проблема с кнопкой.Кнопка - это подвид представления, а вид - это подвид myViewController.view.

Эта кнопка создается динамически, но ее действие не работает.Как я могу отправить событие?

Вот мой код.

// ViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{

    bookCount = 0;

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        UIView *subview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
        [self.view addSubview:subview];
        UIButton  *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btn setFrame: subview.bounds];
        [btn addTarget:self action:@selector(onBtnchild:) forControlEvents:UIControlEventTouchUpInside];
        [subview addSubview:btn];
        .....
    }
    return self;

}
-(void) onBtnchild:(id) sender{
    NSLog(@"HI");
}

Я вижу свою кнопку, но не могу нажать.У вас есть идея, пожалуйста, научите меня.

1 Ответ

1 голос
/ 19 сентября 2011

Ваш код должен быть таким:

 UIView *subview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];

 UIButton  *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

 [btn setFrame: subview.bounds];

 [btn addTarget:self action:@selector(onBtnchild:) 
         forControlEvents:UIControlEventTouchUpInside];

 [subview addSubview:btn];

 [self.view addSubview:subview];
...