Objective-C: addTarget: action: forControlEvent для кнопки подпредставления - PullRequest
1 голос
/ 23 февраля 2010

Я делаю приложение для iPhone, которое содержит класс viewController (PhotoListViewController). Это представление viewController имеет подпредставление, которое содержит кнопку, прикрепленную как подпредставление. Я пытаюсь использовать метод addTarget: action: forControlEvent для вызова метода экземпляра класса PhotoListViewController, чтобы выполнить действие, когда кнопка нажата, но метод не вызывается. Есть мысли о том, как заставить это работать?

Вот соответствующий код. Я знаю, что ваше первое, хотя и будет, почему я вкладываю подпредставления, но это просто дистиллированная версия моей программы - есть причины, по которым я делаю вложение. Я знаю, что, возможно, есть другие способы настройки программы, поэтому мне не нужно делать это вложение, но мой реальный вопрос - почему это не работает?

/ код /

    @implementation PhotoListViewController


- (void)loadView {
    [super viewDidLoad];
 //load elements into the viewController

 //first create the frame
 CGRect frameParent = CGRectMake(0, 0, 0, 0); 
 UIView *viewPerson = [[UIView alloc] initWithFrame:frameParent];

 CGRect frameChild = CGRectMake(0, 20, 0, 0); 
 UIView *newView = [[UIView alloc] initWithFrame:frameChild];

        UIButton *btnShow = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
 btnShow.frame = CGRectMake(230, 120, 80, 30);
 [btnShow setTitle:@"View!" forState:UIControlStateNormal ];
 [btnShow addTarget:self 
action:@selector(viewPhoto_click:) 
forControlEvents:UIControlEventTouchUpInside];
 [newView addSubview:btnShow];
 [viewPerson addSubview:newView];
        [newView release];

 [self setView:viewPerson];
 [viewPerson release];
}


- (void)viewPhoto_click:(UIButton*)sender {
 NSLog(@"HI");
}

Ответы [ 2 ]

1 голос
/ 28 сентября 2012
action:@selector(viewPhoto_click:) 
forControlEvents:UIControlEventTouchUpInside];

Может быть, опечатка копирования копии, но вы пытались удалить: после viewPhoto_click после селектора?

Также. В большинстве примеров обработчик событий выглядит следующим образом.

- (void) viewPhoto_click: (id)sender

Не уверен, что это хоть что-то меняет

1 голос
/ 23 февраля 2010

Возможно, это не связано, но оба значения viewPerson и newView имеют ширину и высоту 0. Возможно, вы захотите придать этим представлениям ненулевой размер (3-й и 4-й аргументы CGRectMake).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...