Einrichten einer Seitenansicht innerhalb eines Containers. Befolgte alle Anweisungen, die ich finden konnte (Anfänger).UMit dem Namen aus dem Array wird immer der Wert null zurückgegeben.
Diese beiden Arrays sind in der Hauptansicht-Controller, die Namen der Bilder habe ich die Seiten füllen wollen.
self.shirtImage = NSArray(objects: "shirt1", "shirt2")
self.pantsImage = NSArray(objects: "pants1", "pants2")
Wenn ich das Programm ausführen, wobei diese beiden Leitungen:
self.todayShirt.image = UIImage(named: self.shirtName)
self.todayPants.image = UIImage(named: self.pantsName)
Rückkehr der Fehler fatal error: unexpectedly found nil while unwrapping an Optional value
oder CUICatalog: Invalid asset name supplied:
was bedeutet, irgendwie einen Null-Wert aus dem Arrays sie empfangen.
Der Seiteninhalt Klasse sieht wie folgt aus:
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)
und die Hauptansicht-Controller ist wie folgt aufgebaut:
class ViewController: UIViewController, UIPageViewControllerDataSource {
var pageViewController: UIPageViewController!
var shirtImage: NSArray!
var pantsImage: NSArray!
override func viewDidLoad() {
super.viewDidLoad()
self.shirtImage = NSArray(objects: "shirt1", "shirt2")
self.pantsImage = 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)
}
func viewControllerAtIndex(index: Int) -> TodayPicksViewController {
if ((self.shirtImage.count == 0) || index >= self.shirtImage.count){
return TodayPicksViewController()
}
let vc: TodayPicksViewController = self.storyboard?.instantiateViewControllerWithIdentifier("TodayPicksViewController") as! TodayPicksViewController
vc.shirtName = self.shirtImage[index] as! String
vc.pantsName = self.pantsImage[index] as! String
vc.pageIndex = index
return vc
}
Ich habe ein anderes Projekt, das eine Arbeitsseitenansicht ähnlich wie diese hat und alles funktioniert perfekt und ich habe fast alles genau kopiert, so dass ich nicht herausfinden kann, warum der Wert vom Hauptansicht-Controller nicht richtig zur Seitenansicht in diesem Bereich passt. Jede Hilfe wird geschätzt.
@ Paulw11 bin ich nicht sicher, ob ich folgen. Wie hätte ich das tun sollen? – andrewxt
@andrewxt Ich denke, Sie haben entweder ein Problem, wo Sie das Bild auf die UIImageView einstellen (dh die Syntax für die Einstellung des Bildes ist falsch) oder Sie haben ein Problem bei der Bildbenennung (möglicherweise haben Sie nicht alle Bilder richtig benannt). Ich habe das unten beantwortet, folge einfach, was ich gesagt habe! Es sollte helfen, lass es mich wissen, wenn es nicht so ist. – owlswipe
@ Paulw11 Meinst du dies in der Hauptansicht Controller oder in der Seite Content-View-Controller? – andrewxt