2015-09-21 9 views
1

Я создал контейнерный вид внутри своего главного контроллера. Я настроил это через конструктор интерфейса. Главный контроллер представления хранит представление контейнера, и у меня есть пользовательский класс (полученный из UIViewController) для обработки работы в контроллере контейнера. Я выложил все виджеты в виде контейнера, и все работает хорошо. Теперь я нашел случай, когда я хотел бы повторно использовать тот же код в другом контроллере.Повторное использование одного вида контейнера в нескольких диспетчерах просмотра

Так что я начал со следующим, чтобы проверить код был удар:

iPad_Expansion_ContViewController *kaufer = [iPad_Expansion_ContViewController new]; 
    [gameController addChildViewController:kaufer]; 

    kaufer.view.frame = CGRectMake(100, 200, 500, 500); 
    kaufer.view.backgroundColor = [UIColor blueColor]; 

    [gameController.view addSubview:kaufer.view]; 
    [gameController.view bringSubviewToFront:kaufer.view]; 

    [kaufer didMoveToParentViewController:gameController]; 

Это действительно создает большой синий ящик; однако, Как загрузить содержимое контейнераViewController я определил через построитель интерфейса? Я думаю, мне нужно что-то вроде следующего, но я не знаю, где найти имя NIB, созданное с помощью Interface Builder.

iPad_Expansion_ContViewController *kaufer = [[iPad_Expansion_ContViewController alloc] initWithNibName:@"???????" bundle:[NSBundle mainBundle]]; 
    [gameController addChildViewController:kaufer]; 
    [kaufer didMoveToParentViewController:gameController]; 

Из всего моего поиска в Интернете кажется, что поиск названия NIB является тривиальным и очевидным. Но я все еще что-то пропустил ... Я попытался использовать имя панели рассказов; однако все объекты в kaufer были нулевыми, и на экране не было вид.

ответ

0

Ну, это был очень сложный день. В конце концов, я не был сумасшедшим (по крайней мере, не в этом вопросе): на порядок сложнее найти .xib имя viewControllers в раскадровке с Xcode 6.4, чем в предыдущих версиях. Эти два вопроса не полностью решить эту проблему, но они дали основные ключи, которые получили меня двигаться снова:

Use initWithNibName with a storyboard

STORYBOARD - doesn't contain a view controller with identifier (ответ Khaliq в)

И без дальнейших церемоний, я раскрутить на Интернет (функционирует) после фрагмента кода:

UIStoryboard *storyboard = self.storyboard; 
    myCustomContViewController *kaufer = (myCustomContViewController *)[storyboard instantiateViewControllerWithIdentifier:@"shopper"]; 
    [mainController addChildViewController:kaufer]; 

    [mainController.view addSubview:kaufer.view]; 
    [mainController.view bringSubviewToFront:kaufer.view]; 

    [kaufer didMoveToParentViewController:mainController]; 

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

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