iPhone SDK 2: кнопка UIB не работает во вложенных представлениях, загруженных из файла пера - PullRequest
1 голос
/ 05 июня 2009

У меня есть кнопка в представлении на основе Nib, которое не ведет себя как кнопка (целевой метод никогда не вызывается). Я пытался динамически добавить кнопку, но это не помогает.

Я попытаюсь описать структуру приложения (поскольку я подозреваю, что это может быть причиной этой проблемы), и, возможно, я не использую правильный шаблон проектирования.

  • Вид A привязан к контроллеру AC . (загружается из кончика корневого контроллера и передается на контроллер навигации.)

  • В представлении A имеется несколько вложенных подпредставлений. Позвоним одному из них.

  • В методе AC :: viewDidLoad:

    Я загружаю 3 viewControllers a, b, c в переменные-члены AC.

В зависимости от настроек приложения я добавляю представление одного из этих контроллеров в качестве подпредставления A '

По существу, в методе AC :: viewDidLoad:

[A' addSubView:(a.view)];

Теперь у a.view есть кнопка (которая помечена). Я ищу этот тег. и добавить целевой метод к нему динамически. В этот момент a.view отображается как подпредставление A ', и кнопка также видна. Отлично.

Но сенсорное взаимодействие не происходит или сенсорное действие выполняется кем-то, кроме моего метода.

Я перепробовал много вариантов, но исполнение никогда не достигает моего метода. Я даже пытался добавить цель ко всем touchUpEvents. ничего такого. Я проверил контрольные значения во включенных событиях, и это правильно. Эта кнопка просто как-то отключена. Я написал простое приложение с одним видом и сделал то же самое, это сработало. Поэтому я думаю, что это как-то связано с тем, как я собираю несколько частей вместе.

Есть идеи?

Хотелось бы, чтобы у меня было что-то вроде Spy ++, где я мог бы видеть очередь сообщений и видеть, кто потребляет эти сообщения вместо моего приложения, или даже смотреть на объект класса. Я новичок в этой платформе. Моя более ранняя борьба с этим в этой теме.

Ответы [ 3 ]

5 голосов
/ 16 июня 2010

Просто включите userInteraction UIImageView ... не проходите через все это безумие !!!

view.userInteractionEnabled = YES;

4 голосов
/ 14 июня 2009

Решено наконец !!! и узнал что-то взамен. Мне понадобилось несколько дней, чтобы понять это.

Причина, по которой мой объект UIButton не работал, заключалась в том, что я обнаружил, что в случае объекта UIIMageView:

"initWithImage: Этот метод настраивает кадр приемника в соответствии с размером указанного изображения. Он также отключает взаимодействие с пользователем для просмотра изображения по умолчанию."

И мой UIButton был назначен как подпредставление элемента управления UIImageView в файле пера !!!

Не было ошибок / предупреждений. Просто тихо отключается.

Решение: Создан объект-контейнер UIView, который теперь содержит UIImageView И кнопку, чтобы кнопка выглядела как наложенная на изображение, но на самом деле это одноуровневое изображение и подпредставление пустого контейнера. UIView.

1 голос
/ 05 июня 2009

Быстрая проверка работоспособности ... Переменная кнопки не равна нулю при назначении цели / селектора?

Кажется ли, что кнопка нажимается, когда вы нажимаете ее, и ничего не происходит ... или кнопка даже не нажимает?

...