2015-01-22 5 views
0

Я пытаюсь сделать что-то вроде экрана настройки IPad, но в подвид на мой контроллер .. поэтому я не могу использовать UISplitViewControllerIOS: сплит UIView с другой точки зрения ViewController

я сделал подвид с 2 subviews the left one - tablevew, правый - обычный вид, чтобы подсмотреть контроллер, который я хочу добавить в него.

Я использую этот фрагмент кода для этого

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
ViewController * vc = [sb instantiateViewControllerWithIdentifier:@"vc"]; 
vc.view.frame = self.customView.bounds; 
[self.customView addSubview:vc.view]; 

Но она падает с ошибкой

Tableview: cellForRowAtIndexPath]: сообщение, отправленное на освобождаться

экземпляр теперь после я активированный зомби obj

Может ли кто-нибудь выяснить почему это происходит или даже лучше есть компонент с открытым исходным кодом, который может это сделать?

+0

Как это может произойти с ошибкой? Ничто не возвращается вообще? Нет сообщений? – mbm29414

+0

Ошибка? Вы имеете в виду IDE? Ваш двоичный файл не будет сбой без какой-либо ошибки в консоли. –

+0

да .. Я думаю, что это проблема с табличным представлением в этом контроллере .. он дает tableView: cellForRowAtIndexPath:]: сообщение отправлено на освобожденный экземпляр теперь после того, как я включен zombie obj –

ответ

1

Существует небольшая дополнительная работа, которая должна быть выполнена для контроллера вида, который contains a sub view controller.

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
ViewController * vc = [sb instantiateViewControllerWithIdentifier:@"vc"]; 

[self addChildViewController:vc]; // Before adding the subview 

vc.view.frame = self.customView.bounds; 
[self.customView addSubview:vc.view]; 

[vc didMoveToParentViewController:self]; // After adding the subview 
+0

Я вроде как сам, но это хороший ответ:) , но у меня есть вопрос .. что пользователь didMoveToParentViewController –

+0

'-willMoveToParentViewController:' и '-didMoveToParentViewController:' - сообщения, которые необходимо отправить при добавлении дочернего элемента в родительский. Это похоже на '-viewWillAppear:' и '-viewDidAppear:'. ПРИМЕЧАНИЕ: '-addChildViewController:' отправляет дочерний элемент '-willMoveToParentViewController:', поэтому вам нужно только отправить '-didMoveToParentViewController:'. –

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