VC внутри другого VC, который не получает нажатия кнопок (после перехода на XCode8)

#ios #objective-c

#iOS #objective-c

Вопрос:

Все это работало, пока я использовал Xcode 6.4. Я установил macOS Sierra и Xcode 8 на свой компьютер, и это стало неисправным.

У меня есть Viewcontroller (vc1) с UIView на нем. Внутри этого UIView я загружаю другой Viewcontroller (vc2).

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

Кто-нибудь сталкивался с этим раньше и знал решение?

Большое спасибо, C

Комментарии:

1. Вы загружали свой Vc2 как subview или как childViewController?

Ответ №1:

Должно быть, проблема с вашим фреймом Vc2.

Попробуйте установить фрейм вашего Vc2 вручную, как показано ниже. код.

 UIStoryboard *sb =  [UIStoryboard storyboardWithName:@"Main" bundle:NULL];
SecondVC *Vc = [sb instantiateViewControllerWithIdentifier:@"idSecondVC"];
Vc.view.frame =CGRectMake(0, 0,  self.containerVw.frame.size.width,self.containerVw.frame.size.height);
[self.containerVw addSubview:Vc.view];
[self addChildViewController:Vc];//adding your Vc2 as a childViewController
 

containerVw -> Ваш пользовательский интерфейс Vc1, в который вы добавляете свой Vc2 в качестве подвида.

Комментарии:

1. [self.myUIView addSubview:childViewController.view]; self. UIView — это UIView, который является свойством Vc1. childViewController.view — это Vc2.

2. Спасибо, Радж, установка рамки устранила проблему. Просто обратите внимание, что эта проблема появилась только при переходе с Xcode 6.4 на Xcode 8. Если я переместил файл .xib из старой копии проекта, который никогда не открывался в Xcode8, и не открывал сам файл в Xcode8, просто создал проект, кнопка сработала. Открытие xib привело к внесению некоторых изменений и появлению проблемы.

3. @Code Похоже, это странная проблема с Xcode8, хотя я не сталкивался с такими проблемами, но спасибо за информацию.