Add-child-view-controller swift

Ich m versuchen, hinzufügen von untergeordneten Ansicht-controller zu einem containerViewController

Kind :

AViewController
BViewController
CViewController

Habe ich keine Fehler aber wenn ich die app starten, ich kann wischen Sie über den Bildschirm, es ist 3 Abschnitt geklaut, aber die A -, B -, C-view-Controller nicht erschienen..

Dies ist mein code, keine Ahnung ?

import UIKit

class ContainerViewController: UIViewController {

@IBOutlet var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()
    //Do any additional setup after loading the view, typically from a nib.


    //creat VC

    var Avc : AViewController = AViewController ()
    var Bvc : BViewController = BViewController ()
    var Cvc : CViewController = CViewController ()



    //add it to the view hierarchie


    self.addChildViewController(Cvc)
    self.scrollView.addSubview(Cvc.view)
    Cvc.didMoveToParentViewController(self)

    self.addChildViewController(Bvc)
    self.scrollView.addSubview(Bvc.view)
    Bvc.didMoveToParentViewController(self)


    self.addChildViewController(Avc)
    self.scrollView.addSubview(Avc.view)
    Avc.didMoveToParentViewController(self)

    //set the frame

    var adminFrame : CGRect = Avc.view.frame
    adminFrame.origin.x = adminFrame.width
    Bvc.view.frame = adminFrame

    var BFrame : CGRect = Bvc.view.frame
    BFrame.origin.x = 2*BFrame.width
    Cvc.view.frame = BFrame

    //set the frame of the scrollview


    var scrollWidth: CGFloat = 3*self.view.frame.width
    var scrollHeight: CGFloat = self.view.frame.size.height
    self.scrollView.contentSize = CGSizeMake(scrollWidth, scrollHeight)


}

Edit:

Blick auf die view-Hierarchie, so berichtet es die folgenden:

<UIWindow: 0x7ff3fad19f70; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x7ff3fac3efe0>; layer = <UIWindowLayer: 0x7ff3fad19740>>
   | <UIView: 0x7ff3fb108b90; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff3fb108e60>>
   |    | <UIScrollView: 0x7ff3fac3acf0; frame = (0 0; 320 568); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7ff3fb107320>; layer = <CALayer: 0x7ff3fac18e00>; contentOffset: {0, 0}; contentSize: {960, 568}>
   |    |    | <UIView: 0x7ff3fac41ed0; frame = (640 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff3fac28a00>>
   |    |    | <UIView: 0x7ff3fac42320; frame = (320 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff3fac38e10>>
   |    |    | <UIView: 0x7ff3fac42730; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ff3fac42810>>
   |    |    | <UIImageView: 0x7ff3faf020f0; frame = (0 564.5; 320 3.5); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x7ff3fae0df80>>
   |    |    | <UIImageView: 0x7ff3fac1c660; frame = (316.5 0; 3.5 568); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x7ff3fac39420>>
   |    | <_UILayoutGuide: 0x7ff3fb108ec0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7ff3fb1091e0>>
   |    | <_UILayoutGuide: 0x7ff3fb109c20; frame = (0 568; 0 0); hidden = YES; layer = <CALayer: 0x7ff3fb109d00>>
Möchten Sie vielleicht zum anhalten der app und auf der (lldb) Eingabeaufforderung, geben Sie po [[UIWindow keyWindow] recursiveDescription] zeigen Sie die Bilder für alle Ansichten. Es scheint mir, dass Sie nie Avc.view.frame, also ich Wette, seine CGRectZero. Ich würde vorschlagen Avc.view.frame = self.view.bounds bevor Sie beginnen festlegen des Rahmens der Bvc und Cvc.
Ich denke, die nur den Rahmen Hexe ist dysplayed ist der scrollView Rahmen meiner container, ich habe versucht, Ihre Lösung, aber es funktioniert nicht.
Die (lldb) po [[UIWindow keyWindow] recursiveDescription] <UIWindow: 0x7ffbd9454b20; frame = (0 0; 320 568); gestureRecognizers = <NSArray: 0x7ffbd94553d0>; layer = <UIWindowLayer: 0x7ffbd9451c00>> | <UIView: 0x7ffbd9718e60; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7ffbd9719130>> | | <UIScrollView: 0x7ffbd970fdd0; frame = (0 0; 320 568);
Genial! Damit Ihre Untersichten da! Aber Sie haben nicht offenbar noch etwas zu denen, Untersichten, so gibt es nichts zu sehen.
Ich habe gerade die Farbe, die den hintergrund für jeden von Ihnen zu identifizieren die verschiedenen Untersichten, aber ich kann nicht sehen, die andere Farbe, wenn swipping, alles ist weiß. Ich habe auch ein label hinzufügen...

InformationsquelleAutor jmcastel | 2014-08-20

Schreibe einen Kommentar