gpt4 book ai didi

ios - 将 instantiateViewController 与 UIVewController 结合使用时获取信号 SIGABRT

转载 作者:行者123 更新时间:2023-11-30 12:51:25 25 4
gpt4 key购买 nike

我希望有人能帮助我解决我遇到的这个问题。

我正在尝试将UIViewController数组添加到UIPageViewController。但是,每当我尝试通过方法 instantiateViewController 访问 View Controller 时,都会收到 SIGABRT 错误。

let vc: UIViewController = self.storyboard?.instantiateViewController(withIdentifier: views[index]) as! UIPageViewController

这是我的整个 ViewController.swift 文件,仅供引用。

import UIKit

class ViewController: UIViewController {

var pageViewController: UIPageViewController!
var views: [String] = ["view1","view2"]

override func viewDidLoad() {
super.viewDidLoad()

self.pageViewController = self.storyboard?.instantiateViewController(withIdentifier: "pageViewController") as! UIPageViewController

var arr: [UIViewController] = []

for i in 0..<views.count{

arr.append(assignView(index: i))

}

self.pageViewController.setViewControllers(arr, direction: .forward, animated: true, completion: nil )

self.addChildViewController(self.pageViewController)
self.view.addSubview(self.pageViewController.view)
pageViewController.didMove(toParentViewController: self)

}

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

func assignView (index: Int) -> UIViewController{

let vc: UIViewController = self.storyboard?.instantiateViewController(withIdentifier: views[index]) as! UIPageViewController

return vc

}


}

有人可以告诉我为什么我的代码会抛出这个错误吗?

非常感谢!

最佳答案

从下面一行:self.storyboard?.instantiateViewController(withIdentifier: "pageViewController") as! UIPageViewController

Storyboard似乎被视为可选。当您尝试访问 Storyboard 变量时,它可能会变得为零。理想情况下,它不应该为零,也不应该是可选的。如果该选项是有意完成的,那么您可以在访问之前应用“if let”进行检查。

如果您需要进一步说明,请告诉我。

关于ios - 将 instantiateViewController 与 UIVewController 结合使用时获取信号 SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40897628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com