2015-06-25 2 views
-1

Я использую Xcode 7, я контроллер раскадровки «UIContainerView» с UIContainerViewИспользование необъявленной типа

Когда я пытаюсь создать выход к контроллеру есть эта ошибка «Использование необъявленный тип UIContainerView "

это не ошибка в Xcode 7, потому что есть такая же ошибка на Xcode 6

мне нужно создать выход, потому что, когда я переключить сегментированный контроль я должен программно изменить встраивание в контейнер

Это ошибка, или я не должен создавать розетку для контейнера? Похоже, что в библиотеке нет ничего, что называется UIContainerView, это странно

+0

Контейнер, в конечном счете ребенок View Controller, так что если вы хотите изменить во время выполнения, то вы можете добавить ViewController в качестве контроллера зрения ребенка. Не нужно создавать IBOutlet для этого. – Leena

+0

мм ОК, я попробую этот путь :), но исключая это решение, я никогда не смогу создать розетку для контейнера или это ошибка? просто для любопытства –

+0

Пометьте ваш вопрос «UIContainerView». Затем прочитайте текст справки тега. –

ответ

2

Нет такого класса, как UIContainerView. Вам необходимо создать выход UIView и подключить его к виду вашего контейнера.

Вы можете переключить содержание зрения контейнера, как:

// Property 
@property (nonatomic, weak) IBOutlet UIView *container; 
@property (nonatomic, strong) UIViewController *first; 
@property (nonatomic, strong) UIViewController *second; 

// Method that removes first vc from view and shows second vc 
// Assumes first and second properties already initialized 
- (void)showSecondVC 
{ 
    // Removes first view controller 
    [self.first.view removeFromSuperview]; 
    [self.first willMoveToParentViewController:nil]; 
    [self.first removeFromParentViewController]; 

    // Shows second view controller 
    [self addChildViewController:self.second]; 
    [self.second didMoveToParentViewController:self]; 
    self.second.view.frame = self.container.bounds; 
    [self.container addSubview:self.second.view];  
} 
0

UIContainerView не является классом, поэтому вы получаете ошибку. Вместо этого используйте UIView. Вид Container на самом деле это понятие в раскадровке, что позволяет сделать подобное программирование вещи:

  1. Инициализируют второй контроллер представления
  2. Добавить это как вид ребенка контроллер
  3. Добавить свое мнение на месте зрения контейнера с такой же рама.

Когда вы добавляете вид контейнера, все вышеперечисленные вещи выполняются автоматически. Если вы хотите переключиться на другой контроллер вида, вы создадите несколько видов контейнеров. Показать и скрыть представления контейнеров на основе выбранного UISegmentedControllerIndex

1

Это сбивает с толку, потому что IB lablels как UIContainerView, но это тип действительно просто UIView.

enter image description here


enter image description here

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

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