2012-11-15 14 views
7

Utworzyłem specjalną klasę UIView, która ma określone właściwości, i zrobiłem to programowo, ponieważ jest zwykle puste, ale czasami zawiera inne widoki. Wiem, że jeśli programowo utworzę UIView, mogę zrobić coś takiego, jak [specialView addSubview: aView];Dodaj widok storyboardu jako podzbiór utworzonego programowo widoku

Mój problem polega na tym, że istnieje UIView, który utworzyłem w storyboardie i muszę dodać, że UIView jako wyodrębnienie w moim specjalnym widoku. Połączyłem go jako właściwość w moim ViewController, ale gdy robię ten sam kod co powyżej, nic się nie dzieje. Myśli?

Odpowiedz

9
MyViewController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyScene"]; 
[specialView addSubview:myViewController.theViewToAdd]; 

Nie zapomnij podać takiego identyfikatora do swojej sceny (kontrolera widoku) w programie Interface Builder.

0

Ten UIViewController, który mieści pożądany widok, może nie zostać utworzony. Musisz więc utworzyć instancję kontrolera i pobrać widok z tego miejsca.

2

Innym rozwiązaniem jest dodanie viewcontroller jako childviewcontroller.

func displayContentController(content: UIViewController) { 
    addChildViewController(content) 
    self.view.addSubview(content.view) 
    content.didMoveToParentViewController(self) 
} 

Aby usunąć:

func hideContentController(content: UIViewController) { 
    content.willMoveToParentViewController(nil) 
    content.view.removeFromSuperview() 
    content.removeFromParentViewController() 
} 
Powiązane problemy