我正在制作一个应用程序,每次按下下一个按钮时都会更改情节提要的文本,但是我希望每次按下下一个按钮时都使用segue类型的动画

我尝试过调用导致视图控制器的segue,但它名为SIGABART

    public func segue() {

        var slide: [String] = GetText().Main(text: .info(0, 0))

        print(slide)

        SectionViewController().setValues(title: slide[1], buttonTitle: slide[3], body: slide[2])

        performSegue(withIdentifier: slide[0], sender: nil)
    }


我也尝试过

let vc = SectionViewController() //my view controller class
self.present(vc, animated: true, completion: nil)


但是在尝试更新标签时会显示Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

我希望视图控制器会随着动画再次弹出,但是它会因SIGABART而崩溃,可能是因为视图控制器不“拥有” segue

最佳答案

除了使用Segue之外,还可以通过编程方式从SectionViewController呈现SectionViewController的另一个实例,例如,

class SectionViewController: UIViewController {
    @IBOutlet weak var label: UILabel!

    func setValues(title: String, buttonTitle: String) {
        label.text = title
        //add your code...
    }

    func showSectionVC() {
        if let vc = self.storyboard?.instantiateViewController(withIdentifier: "SectionViewController") as? SectionViewController {
            vc.setValues(title: "", buttonTitle: "")
            self.present(vc, animated: true, completion: nil)
        }
    }
}


从您要在已显示的showSectionVC()中显示SectionViewController的任何地方调用SectionViewController

另外,不要忘记在outlet中正确连接labelSectionViewController

08-08 07:01