2016-04-11 15 views
0

Ich versuche, eine Seitenansicht auf die Hauptansicht mit einem Container zu platzieren. Ich folgte einem Video, um eine Testseitenansicht zu erstellen, da ich zu schnell bin. Ich ließ es im Test arbeiten und kopierte dann den größten Teil des Codes und änderte die relevanten Variablen. Wenn ich die App starte, wird der Container ohne Inhalt angezeigt.Seitenansicht in Container zeigt keinen Inhalt

Dies ist meine Seite Content-View-Controller.

class TodayPicksViewController: UIViewController { 

@IBOutlet weak var todayShirt: UIImageView! 
@IBOutlet weak var todayPants: UIImageView! 

var pageIndex: Int! 
var shirtName: String = "" 
var pantsName: String = "" 



override func viewDidLoad() { 
    super.viewDidLoad() 

    self.todayShirt.image = UIImage(named: self.shirtName) 
    self.todayPants.image = UIImage(named: self.pantsName) 



    // Do any additional setup after loading the view. 
} 

Dies ist meine Hauptansicht Controller.

class ViewController: UIViewController, UIPageViewControllerDataSource { 

var pageViewController: UIPageViewController! 
var shirtImages: NSArray! 
var pantsImages: NSArray! 


override func viewDidLoad() { 
    super.viewDidLoad() 

    self.shirtImages = NSArray(objects: "shirt1", "shirt2") 
    self.pantsImages = NSArray(objects: "pants1", "pants2") 

    self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController 
    self.pageViewController.dataSource = self 

    let startVC = self.viewControllerAtIndex(0) as TodayPicksViewController 
    let viewControllers = NSArray(object: startVC) 

    self.pageViewController.setViewControllers((viewControllers as! [UIViewController]), direction: .Forward, animated: true, completion: nil) 

    self.pageViewController.view.frame = CGRectMake(0, 30, self.view.frame.width, self.view.frame.height - 60) 

    self.addChildViewController(self.pageViewController) 
    // self.view.addSubview(self.pageViewController.view) 
    self.pageViewController.didMoveToParentViewController(self) 

} 

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

func viewControllerAtIndex(index: Int) -> TodayPicksViewController { 
    if ((self.shirtImages.count == 0) || index >= self.shirtImages.count){ 
     return TodayPicksViewController() 
    } 

    let vc: TodayPicksViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ContentViewController") as! TodayPicksViewController 
    vc.pantsName = self.pantsImages[index] as! String 
    vc.shirtName = self.shirtImages[index] as! String 
    vc.pageIndex = index 


    return vc 

} 

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { 
    let vc = viewController as! TodayPicksViewController 
    var index = vc.pageIndex as Int 

    if ((index == 0) || index == NSNotFound){ 
     return nil 
    } 

    index -= 1 

    return self.viewControllerAtIndex(index) 
} 

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { 
    let vc = viewController as! TodayPicksViewController 
    var index = vc.pageIndex as Int 

    if (index == NSNotFound){ 
     return nil 
    } 
    index += 1 

    if (index == self.shirtImages.count){ 
     return nil 
    } 

    return self.viewControllerAtIndex(index) 

} 

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int { 
    return self.shirtImages.count 
} 

func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int { 
    return 0 
} 

Ich habe mit Änderungen hoffentlich etwas zu bekommen, zu arbeiten und in der Nähe konnte ich bekommen wieder die Fehlermeldung CUICatalog: Invalid asset name supplied:

Ich blickte auf die Fehlermeldung und es vorgeschlagen rumgespielt, dass ich eine vorübergehende sein kann Kein Wert für die Bildansicht, aber soweit ich das beurteilen kann, sind sie genauso aufgebaut wie das Testprojekt, das ich gemacht habe. Vielleicht hat es etwas mit Eltern/Kind-Beziehungen zu tun, aber ich bin mir nicht sicher. Jede Anleitung wird sehr geschätzt.

Antwort

0

Diese Zeile kommentiert wird, wenn es nicht sein sollte:

// self.view.addSubview(self.pageViewController.view) 

Damit kommentierte, bist du nie das Hinzufügen tatsächlich die UIPageViewController auf dem Bildschirm.

+0

Danke für die Antwort. Sorry, dass die kommentierte Zeile auf diese Weise verlassen wurde, bevor ich die Frage unbeabsichtigt gepostet habe, während ich einige Änderungen vorgenommen habe. Auch wenn diese Zeile nicht kommentiert ist, habe ich immer noch den Fehler. – andrewxt

+0

Ich habe eine relevantere und aktualisierte Frage zum selben Thema hier gestellt, wenn es Ihnen nichts ausmacht, einen Blick darauf zu werfen. http://stackoverflow.com/questions/36560473/uiimage-name-from-array-keeps-returning-nil-value?noredirect=1#comment60721633_36560473 – andrewxt

+0

Welcher Fehler? Dass nichts auf dem Bildschirm erscheint oder dass Ihre Bilder einen Fehler anzeigen? Weil ich deine andere Frage zu den Bildern sah, und das Problem war, dass du deine Variablen zu spät initialisiert hast. – paulvs