Окно утверждения должно быть пустым (ошибка Swift)

#ios #swift #uipageviewcontroller #uiwindow

Вопрос:

Когда PageController пытается представить свой контент, я сталкиваюсь со следующим сообщением в консоли:

«Окно[Assert] здесь не должно быть, если только подкласс по ошибке не отправляет это дочернему элементу, когда окно не может быть найдено».

Приложение не падает, оно просто не показывает контент, в котором оно должно отображаться PageController . Код кажется мне прекрасным:

  class RulesPageViewController: UIPageViewController {   var rulesDelegate: RulesPageVeiwControllerDelegate?    var pageHeadings = ["1st page","2nd","3rd"]    var currentIndex = 0    override func viewDidLoad() {  super.viewDidLoad()   self.dataSource = self  self.delegate = self    if let startingViewController = contentViewController(at: 0)  {  self.setViewControllers([startingViewController], direction: .forward, animated: false, completion: nil)  }  }     func contentViewController(at index: Int)-gt; PageContentViewController?  {  if(index lt; 0 || index gt;= pageHeadings.count)  {  return nil  }  if let pageContentViewController = UIStoryboard(name: "GameRules", bundle: nil).instantiateViewController(withIdentifier: "PageContentViewController") as? PageContentViewController{  pageContentViewController.index = index  return pageContentViewController  }  return nil  }  } extension RulesPageViewController: UIPageViewControllerDelegate {    func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {    if completed {  if let contentViewController = pageViewController.viewControllers?.first as? PageContentViewController  {  currentIndex = contentViewController.index  rulesDelegate?.didUpdatePageIndex(currentIndex: currentIndex)  }  }  } }  extension RulesPageViewController: UIPageViewControllerDataSource {    func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -gt; UIViewController? {  var index = (viewController as! PageContentViewController).index  index -= 1  return contentViewController(at: index)  }    func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -gt; UIViewController? {  var index = (viewController as! PageContentViewController).index  index  = 1  return contentViewController(at: index)  }     }  

Ответ №1:

Проблема была решена: PageContentViewController соответствовал неправильному классу