Добавление пользовательского UIButton и действия в представление в делегате оконного приложения (ios)

Я работаю над приложением панели вкладок, которому нужна глобальная строка заголовка с прикрепленной кнопкой настроек. Мне удалось добавить изображение в главное окно, затем метку, другое изображение и, наконец, кнопку. Однако я не могу заставить эту кнопку запускать действие. он устроен так:

[settingsButton addTarget:self action:@selector(settings) forControlEvents:UIControlEventTouchupInside];

Затем действие определяется как:

-(void)settings{
        NSLog(@"please do something");
}

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

P.S. - я также пытался настроить метод следующим образом:

 -(void) settings:(id)sender{
 }

и вызывая его, заменив действие на @selector(settings:) безрезультатно. Спасибо.


person Josh Marthaller    schedule 02.03.2012    source источник
comment
AFAIK, это должно сработать. Но я заметил, что у вас опечатка в Touchup. Должно быть TouchUp с большой буквы U.   -  person matsr    schedule 02.03.2012
comment
Подождите, почему вы не используете UIToolbar или что-то подобное для своего заголовка/кнопки? Создание изображений, меток и т. д. вручную кажется утомительным и подверженным ошибкам.   -  person Conrad Shultz    schedule 02.03.2012


Ответы (1)


Я решил это. Я забыл, что изменил вид за кнопкой на UIImageView. Я не могу поверить, что не подумал об этом раньше, так как эта же проблема стоила мне 2 часов на днях. Когда у вас есть imageView, всегда не забывайте устанавливать этот флаг, если вы хотите что-то на нем:

(someImageView).userInteractionEnabled = YES;

Надеюсь, я спасу кого-нибудь от ненужной головной боли на час или два.

P.S. Спасибо за быстрый комментарий!

person gma    schedule 02.03.2012