我正在制作一个应用程序,每次按下下一个按钮时都会更改情节提要的文本,但是我希望每次按下下一个按钮时都使用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
中正确连接label
的SectionViewController
。