Просмотр страницы в контейнере не показывает содержимое

Я пытаюсь поместить представление страницы в основной вид с помощью контейнера. Я следил за видео, чтобы просмотреть тестовую страницу, так как я новичок в Swift. Я заставил его работать в тесте, а затем скопировал большую часть кода и изменил соответствующие переменные. Когда я запускаю приложение, контейнер отображается без содержимого.

Это мой контроллер просмотра содержимого страницы.

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.
}

Это мой основной контроллер представления.

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
}

Я поиграл с изменениями, надеюсь, что-то заработает, и самое близкое, что мне удалось получить, вернуло сообщение об ошибке CUICatalog: Invalid asset name supplied:

Я просмотрел сообщение об ошибке, и оно предположило, что я могу передать нулевое значение представлению изображения, но, насколько я могу судить, они настроены точно так же, как и тестовый проект, который я сделал. Возможно, это как-то связано с отношениями между родителями и детьми, но я не уверен. Любое руководство очень ценится.


person andrewxt    schedule 11.04.2016    source источник


Ответы (1)


Эта строка комментируется, когда это не должно быть:

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

С этим комментарием вы никогда не добавляете UIPageViewController на экран.

person paulvs    schedule 11.04.2016
comment
Спасибо за ответ. Извините, что строка с комментариями была оставлена ​​​​таким образом, прежде чем я непреднамеренно опубликовал вопрос, пока вносил некоторые изменения. Даже если эта строка не прокомментирована, у меня все еще есть ошибка. - person andrewxt; 12.04.2016
comment
Я задал более актуальный и обновленный вопрос по той же проблеме здесь, если вы не против взглянуть. stackoverflow.com/questions/36560473/ - person andrewxt; 12.04.2016
comment
Какая ошибка? На экране ничего не появляется или ваши изображения выдают ошибку? Потому что я видел ваш другой вопрос об изображениях, и проблема заключалась в том, что вы слишком поздно инициализировали свои переменные. - person paulvs; 12.04.2016
comment
Не могли бы вы немного уточнить это? Извините, я новичок в этом, просто пытаюсь внести ясность. Где я должен их инициализировать? - person andrewxt; 12.04.2016
comment
Я прокомментировал ваш другой вопрос. - person paulvs; 12.04.2016