Ich möchte einen UIViewController in eine UIView einbetten. Ich möchte das programmatisch erstellen. Ich habe den UIViewController im Storyboard erstellt.UIViewController in eine UIView einbetten
Mein Code eine leere UIView zu erstellen:
let myNewView=UIView(frame: CGRect(x: (0 + screenHeight/2), y: leftView.frame.origin.y, width: screenHeight/2, height: leftView.frame.height))
myNewView.backgroundColor=UIColor.lightGray
self.view.addSubview(myNewView)
und der Code der UIViewController zu der Ansicht anzuhängen:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
var controller: UIViewController = storyboard.instantiateViewController(withIdentifier: "testView") as UIViewController
myNewView.addSubview(controller.view)
Dadurch wird die Ansicht in meinem UIView zeigt, aber nicht an der richtigen Weg. Die UIView ist in diesem Fall 512 Pixel breit. Während der (eingebettete) UIViewcontroller denkt, dass er 1024 Pixel breit ist (die volle Bildschirmbreite).
Wie kann ich es beheben, dass die eingebettete Ansicht die Breite und Höhe von seinem übergeordneten (UIView) bekommt?
Was Sie tun, ist völlig falsch. Sie können auf diese Weise nicht einfach die View-Controller-Ansicht zu Ihrer Schnittstelle hinzufügen. (Was die Größe betrifft, liegt es an Ihnen, einen 'Rahmen' für die hinzugefügte Ansicht zu erstellen. Aber Ihre Ansicht wird auf keinen Fall korrekt funktionieren.) – matt
@matt Was ist eine gute Methode, dies zu tun? – da1lbi3