swift - 同一类中的两个“performSegue”到不同的视图控制器
问题描述
我正在尝试使用两个不同的按钮访问两个不同的 VC。有了'newGeneratedListBtn,我只想去vc1。使用“newEmptyList”按钮,我想使用一个可以工作的布尔值转到 vc3。但是,当我单击第一个按钮“newGeneratedListBtn”转到 vc1 时,出现错误:“无法将 'AppName.vc1' 类型的值转换为 'AppName.vc3'。
好像当我单击按钮到 vc1 时,它会尝试发送与我想发送到 vc3 相同的值。我该如何解决这个问题?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
let value = true
//Button to VC1
@IBAction func newGeneratedListBtn(_ sender: UIButton) {
performSegue(withIdentifier: "unwindSegueToVC1", sender: self)
}
//Value to send to VC2
override func prepare (for segue: UIStoryboardSegue, sender: Any!) {
let vc = segue.destination as! ListView
vc.newEmptyListValue = value
}
//Button to VC2
@IBAction func newEmptyList(_ sender: UIButton) {
performSegue(withIdentifier: "valueSender2", sender: self)
}
}
解决方案
您需要转换为特定标识符
override func prepare (for segue: UIStoryboardSegue, sender: Any!) {
super.prepare(for:segue,sender:sender)
if segue.identifier == "valueSender2" {
let vc = segue.destination as! ListView
vc.newEmptyListValue = value
}
else {
// it's unwindSegueToVC1
}
}
既
performSegue(withIdentifier: "unwindSegueToVC1", sender: self)
performSegue(withIdentifier: "valueSender2", sender: self)
有电话prepare
推荐阅读
- java - 线程“主”java.lang.UnsupportedClassVersionError 中的异常:
- javascript - React Hook useEffect 缺少对象的依赖项
- python - 我如何使用 python 文件从 localhost 上线???它不像其他普通的 html php 文件那样工作
- python - 只有 size-1 的数组可以转换为 Python 标量 python
- linux - 打印/查找非空字符串中的第一个字符(出现最低的字符)并且顺序很重要
- amazon-web-services - AWS.config.credentials.get() 花费太多时间
- c++ - 用于频繁分配和释放的基于轻树的数据结构的内存分配器
- ios - 设置约束后 Swift 获取实际视图大小
- mysql - ORDER BY date SQL with LEFT JOIN 用于消息传递
- reactjs - 是否需要 useMemo 来通过 reactjs 中的上下文 API 管理状态?