一个按钮可以有两个 segue 到两个不同的视图控制器/我如何编写没有 segue 的视图控制器更改?
Can a button have a two segues to two different view controllers / how can i code a view controller change without a segue?
这是我现在拥有的,但它没有打开视图控制器。我认为我的 let act1c = act1ViewController() 不起作用。
@IBAction func buttonPressed(_ sender: UIButton) {
let act1vc = act1ViewController()
let act2vc = activity2VC()
switch sender.titleLabel?.text {
case "cheer up":
present(act1vc, animated: true, completion: nil)
case "yay":
present(act2vc, animated: true, completion: nil)
default:
break
}
您可以从一个按钮获得 2 个 segue,但是您必须有条件地取消一个 func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool
的覆盖,这将是一个令人困惑的设计。
我建议从 ViewController 顶部的 viewController 图标连接你的两个 segues。在 Attributes Inspector 中为它们提供标识符,例如 "segueToAct1"
和 "segueToAct2"
,然后使用 performSegue(withIdentifier:sender:)
:
触发它们
@IBAction func buttonPressed(_ sender: UIButton) {
switch sender.titleLabel?.text {
case "cheer up":
self.performSegue(withIdentifier: "segueToAct1", sender: nil)
case "yay":
self.performSegue(withIdentifier: "segueToAct2", sender: nil)
default:
break
}
}
这是我现在拥有的,但它没有打开视图控制器。我认为我的 let act1c = act1ViewController() 不起作用。
@IBAction func buttonPressed(_ sender: UIButton) {
let act1vc = act1ViewController()
let act2vc = activity2VC()
switch sender.titleLabel?.text {
case "cheer up":
present(act1vc, animated: true, completion: nil)
case "yay":
present(act2vc, animated: true, completion: nil)
default:
break
}
您可以从一个按钮获得 2 个 segue,但是您必须有条件地取消一个 func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool
的覆盖,这将是一个令人困惑的设计。
我建议从 ViewController 顶部的 viewController 图标连接你的两个 segues。在 Attributes Inspector 中为它们提供标识符,例如 "segueToAct1"
和 "segueToAct2"
,然后使用 performSegue(withIdentifier:sender:)
:
@IBAction func buttonPressed(_ sender: UIButton) {
switch sender.titleLabel?.text {
case "cheer up":
self.performSegue(withIdentifier: "segueToAct1", sender: nil)
case "yay":
self.performSegue(withIdentifier: "segueToAct2", sender: nil)
default:
break
}
}