2016-05-18 4 views
-1

hinzufügen Ich versuche, eine App zu erstellen, in dem Sie zwischen veiws (ähnlich Snapchat) und ich kam in diesem Beispiel hereProblem versucht subview in schnellen

Jetzt habe ich versucht, diese und es funktioniert genau streichen kann, wie ich wollte es. Wenn ich versuche, dasselbe auf meiner App zu implementieren, stoße ich auf einige Probleme.

import UIKit 

class ContainerViewController: UIViewController { 
    // MARK: Properties 
    @IBOutlet var scrollView: UIScrollView?; 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let goal1 :GoalOneViewController = GoalOneViewController(nibName: "GoalOneViewController", bundle: nil); 
     let goal2 :GoalTwoViewController = GoalTwoViewController(nibName: "GoalTwoViewController", bundle: nil); 
     let goal3 :GoalThreeViewController = GoalThreeViewController(nibName: "GoalThreeViewController", bundle: nil); 


     // 2) Add in each view to the container view hierarchy 
     // Add them in opposite order since the view hieracrhy is a stack 
     self.addChildViewController(goal3); 
     // ERROR OCCURS ON LINE BELOW ---------------------------- 
     self.scrollView!.addSubview(goal3.view); 
     goal3.didMoveToParentViewController(self); 

     self.addChildViewController(goal2); 
     self.scrollView!.addSubview(goal2.view); 
     goal2.didMoveToParentViewController(self); 

     self.addChildViewController(goal1); 
     self.scrollView!.addSubview(goal1.view); 
     goal1.didMoveToParentViewController(self); 

     // 3) Set up the frames of the view controllers to align 
     // with eachother inside the container view 
     var adminFrame :CGRect = goal1.view.frame; 
     adminFrame.origin.x = adminFrame.width; 
     goal2.view.frame = adminFrame; 

     var BFrame :CGRect = goal2.view.frame; 
     BFrame.origin.x = 2*BFrame.width; 
     goal3.view.frame = BFrame; 


     // 4) Finally set the size of the scroll view that contains the frames 
     let scrollWidth: CGFloat = 3 * self.view.frame.width 
     let scrollHeight: CGFloat = self.view.frame.size.height 
     self.scrollView!.contentSize = CGSizeMake(scrollWidth, scrollHeight); 


    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    /* 
    // MARK: - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

} 

Jetzt habe ich in dem Code markiert, wo das Problem auftritt. Ich bekomme immer das folgende Problem:

Und ich bin mir nicht sicher warum. Ich habe versucht, zu debuggen, aber ich bin zu swift/ios Entwicklung relativ neu, also kann ich etwas übersehen.

+0

können Sie einen Haltepunkt in Xcode festlegen und sehen, welche Zeile Fehler gibt. – ArunGJ

+0

Sie haben den Ausgang im Interface Builder nicht an ein Objekt angehängt. Es ist nil, weil Sie es nicht programmgesteuert oder von einer Nib in IB initialisiert haben – Dare

Antwort

1

Ich denke

@IBOutlet var scrollView: UIScrollView?; 

sein sollte:

mit Ihrem Viewcontroller
@IBOutlet var scrollView: UIScrollView! 

Ist @IBOutlet var scrollView: UIScrollView? abgebildet?