Objective-C / iPhone: вид Windows не реагирует на нажатия кнопок! - PullRequest
0 голосов
/ 16 сентября 2009

Итак, в моем делегате приложения я добавляю вызов и добавляю myViewController.view в главное окно:
1. [окно addSubview: myViewController.view];

В myViewController я делаю следующий код в методе viewDidAppear:
2. [selfsentModalViewController: анимированный yourViewController: ДА];


В моем классе yourViewController я делаю следующее, чтобы попытаться вернуться в главное окно.
3. [self dismissModalViewControllerAnimated: YES];

Мой главный вид окон отображается со всеми кнопками, но кнопки не реагируют ни на один щелчок или что-либо еще. Как будто над ними что-то, чего я не вижу.

Кроме того, кнопка главного окна работает до этого процесса, но не после процесса.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 16 сентября 2009
  1. Если вызов метода dismiss находится в контроллере модального представления (а не в родительском, который его представляет), то вы действительно хотите вызвать [self.parentController dismissModalViewControllerAnimated:YES];
  2. Есть ряд причин, по которым вещи могут не реагировать на ваши прикосновения. Вот два, которые произошли со мной:
    • Слишком маленькая рамка кадра, к которому вы хотите прикоснуться. UIView s могут рисовать за пределами своих фреймов, поэтому он может выглядеть нормально, но не реагировать, если касание технически находится за пределами фрейма - вы также должны проверить, что у всех суперпредставлений в иерархии также есть достаточно большой фрейм.
    • Если что-то на ваш взгляд является UIImageView или его дочерним элементом, оно не будет реагировать на прикосновения пользователя, потому что UIImageView имеет userInteractionEnabled, установленный в NO по умолчанию. Вы можете исправить это, установив myImageView.userInteractionEnabled = YES;

Редактировать : Оли указал в комментариях, что dismissModalViewControllerAnimated: должен работать, если вызывается либо self.parentController, либо просто self, поскольку этот метод достаточно умен, чтобы при необходимости вызвать родителя в документы. Документы также заставляют его звучать так, как будто это может вести себя по-разному, если у вас открыто сразу несколько представлений моделей, поэтому я по-прежнему считаю более понятным код для прямого вызова метода на self.parentController.

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