webentwicklung-frage-antwort-db.com.de

iOS Nested View Controller-Ansicht in der UIViewController-Ansicht?

Ist es in der Regel eine schlechte Programmierpraxis in iOS, wenn die Ansicht eines verschachtelten Ansichtscontrollers in der Ansicht von UIViewController enthalten ist? Angenommen, ich möchte ein interaktives Element haben, das auf Berührungen des Benutzers reagiert, aber nur etwa 25% des Bildschirms einnimmt.

Ich nehme an, ich würde diesen verschachtelten Ansichtscontroller meinem UIViewController hinzufügen, indem ich Folgendes sage:

[self.view addSubview: nestedViewController.view];
85
Skyler

Ich habe diesen Code in den übergeordneten Ansichtscontroller eingefügt. Es funktioniert großartig für mich.

Obj C

-(void)viewDidLoad{
     [super viewDidLoad];
     InnerViewController *innerViewController = [self.storyboard instantiateViewControllerWithIdentifier:INNER_VIEW_CONTROLLER];
     [self addChildViewController:innerViewController];
     [self.view addSubview:innerViewController.view];
     [innerViewController didMoveToParentViewController:self];
}

Swift :

 let childViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChildViewController"),
 self.addChildViewController(childViewController)
 self.view.addSubview(childViewController.view)
 childViewController.didMove(toParentViewController: self)

Eine andere Möglichkeit ist, IB zu verwenden und die Containeransicht zu setzen. UIViewController wird automatisch angezeigt (in diesem Fall XCode 9): enter image description here

52

Hier ist meine Swift 3 Lösung basierend auf Swift Developers On FB's Antwort

 let childViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChildPageViewController"),
 self.addChildViewController(childViewController)
 self.view.addSubview(childViewController.view)
 childViewController.didMove(toParentViewController: self)
5
Rajat Jain