ios - 条件和 UIButton

标签 ios swift

我在第一个 View Controller 中有两个按钮,每个按钮代表用户可以玩的游戏(一个宾果游戏和一个内存游戏)。我通过 segue 将这两个按钮从第一个 View Controller 传递到第三个 View Controller ,并在接收 View Controller (thirdVC)中创建了两个 UIButton 变量。

现在,我需要在第三个 View Controller 中创建一个条件语句,以便当用户在第一个 View Controller 中按下宾果按钮时,用户会转到宾果游戏以玩游戏,或者如果用户按下在第一 View Controller 中的内存游戏按钮中,用户继续到内存游戏以便玩内存游戏。换句话说,如果用户按下宾果游戏按钮,则对宾果游戏执行BingoSegue,或者如果用户按下内存游戏按钮,则对内存游戏执行内存Segue。我对如何编写实际按钮感到困惑,因为 IBAction 按钮代码位于第一个 View Controller 中。我已经为此工作了数周,并在 stackoverflow 中对此进行了研究,但尚未成功。我假设我需要一个 bool 值。任何帮助将不胜感激!

var bingoButton = UIButton()
var memoryButton = UIButton()

var isSelected = false

override func viewDidLoad() {
    super.viewDidLoad()

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

//bingoButton:   

if isSelected {
    performSegue(withIdentifier: "bingoSegue", sender: sender)
    print("bingoSegue")

}

//memoryButton:

if isSelected {
    performSegue(withIdentifier: "memorySegue", sender: sender)
    print("memorySegue")

}
}

最佳答案

在 Storyboard中,您可以通过控制从按钮拖动到特定的目标 View Controller 来添加两个不同的segue。那么您就不必在代码中手动执行检查和连接:

example

如果您必须将数据从第一个 View Controller 传递到“游戏 View Controller ”,您可以命名这些转场并在第一个 View Controller 的 prepareForSegue 函数中检查它们:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "Bingo" {
        // ...
    } else if segue.identifier == "Memory" {
        // ...
    }
}

关于ios - 条件和 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50952614/

相关文章:

swift - UIBezierPath:如何在圆角 View 周围添加边框?

ios - 由于授权,WKWebview 无法加载 Assets 文件

ios - 在 iOS 的屏幕上和屏幕外动画 View

ios - 核心数据 : What's the difference between performBackgroundTask and newBackgroundContext()?

swift - 协助 Swift 5 WebKit 并在 ViewController 中从 HTML 打开电话和电子邮件链接

ios - 在 ScrollView 中加载自定义 UIView

ios - 从 subview 调用父 View Controller 函数

iOS - UncaughtExceptions 全局异常处理程序不允许应用程序退出

iOS , iPhone 背景/前景过渡中的快照

ios - Swift:将数组值添加到应用内电子邮件正文