4

Новое обновление: Я создал совершенно новый проект, который построен так же, как показано ниже. Тем не менее, этот тестовый проект на самом деле работает отлично, даже если он кажется одним и тем же ... Одна вещь, которую я заметил, это то, что контроллер родительского представления в сломанной версии получает -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event при нажатии на представление контроллера детского представления. В рабочей версии контроллер дочернего представления получает событие как должно ... Это как если родительское представление блокирует дочерний вид или что-то в этом роде?iOS - childViewController не принимает события

Обновление прогресса: после небольшого завинчивания я обнаружил, что он отлично работает при прямом назначении фрейма контроллерам дочерних элементов. Тем не менее, я должен создать свой проект, используя автозапуск, так что это то, что я сделал. По какой-то причине автоотключение вызывает недосмотр пользователя диспетчера просмотра детского просмотра ...

На данный момент у меня есть viewcontroller, который имеет только 1 контроллер childview. Вид childviewcontroller отображается очень хорошо, но я вообще не могу взаимодействовать с childViewController. У ChildViewController есть несколько UIButtons, но они не отвечают на клики.

Я пробовал тестировать с этим как в родительском, так и в детском представлении.

(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"Touched!"); 
} 

При нажатии в кадре зрения дочернего зрения контроллера, этот метод отвечает в контроллере родительского вида, но не контроллер зрения ребенка.

Контроллер детского представления также работает правильно при его непосредственном создании и установке его в качестве контроллера корневого представления в делегате приложения.

код, я использую в контроллере родительского вида:

(void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.detailPageVC = [[GoalDetailsPageViewController alloc] init]; 
    [self.view addSubview:self.detailPageVC.view]; 
    [self addChildViewController:self.detailPageVC]; 
    [self.detailPageVC didMoveToParentViewController:self]; 
} 

Спасибо за помощь новобранец! :)

+0

Как вы определяете 'detailPageVC'? – Wain

+0

Не уверен, что вы подразумеваете под определением, извините. '@property GoalDetailsPageViewController * detailPageVC;' ^ Это то, что вы ищете? – Sethypie

+0

Да, это полная линия? – Wain

ответ

2

Фактическая проблема была в моем GoalDetailsPageViewController. Проблема была фактически вызвана попыткой использовать автозапуск в uiscrollview ... сложная вещь. В любом случае, оригинальный код, который я опубликовал, в порядке, спасибо.

2

Ну, я могу только предположить следующее:

  • Убедитесь, что userInteractionEnabled свойством кнопок и ребенок вид ViewController установлен на YES.
  • Дважды проверьте, что ваш взгляд не «скрыт» и не имеет альфы 0.0.
  • Подтвердите exclusiveTouch вашего лица. Вид ViewController is не установлен на YES.

Надеюсь, это поможет!

+0

Я пробовал все, и проблема осталась, но спасибо. – Sethypie

+0

настройка userInteractionEnabled to true в моей раскадровке сделала трюк. – slashburn

0

Мое решение:

- (void) displayContentController: (UIViewController*) content{ 
[content.view setFrame:recorderView.bounds]; 
UINavigationController *childNavController = [[UINavigationController alloc] initWithRootViewController:content]; 
childNavController.toolbarHidden = NO; 
childNavController.view.frame = content.view.frame; 
[self addChildViewController:childNavController]; 
[recorderView addSubview:childNavController.view]; 
[childNavController didMoveToParentViewController:self]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^