ios - 使用户仅在完成操作 IOS Swift 3 后才访问 View

标签 ios iphone swift

<分区>

如何让用户只能在他/她完成操作后才能访问 View ?例如,仅当用户在 Swift 3 for IOS 开发中正确回答了先前 View 中的问题时才访问 View

最佳答案

这是一个非常广泛的问题,但是诗人版本的物理学是您想要添加某种目标操作方法来监控您的 textField。问题一得到回答,用户就可以继续了。

一种方法是设置一个“下一步”按钮,该按钮最初会被禁用,并在问题得到正确回答后启用。

FirstViewController 中,您可以将 IBOutlet 连接到 nextButtontextField,如下所示:

@IBOutlet weak var textField: UITextField!
@IBOutlet weak var nextButton: UIButton!

您还可以按住 control 并拖动一个 segue 到 SecondViewController

然后,在 viewDidLoad 中,您可以先禁用该按钮:

nextButton.isEnabled = false

当按钮被禁用时,你不能继续。启用后,您可以通过按它来继续。

然后,你可以得到一个 method you create to monitor your textField正确答案:

// this is the method that monitors your textField
func textFieldDidChange(textField: UITextField) {

    if textField.text != "42" {
        nextButton.isEnabled = false
    }

    else {
        nextButton.isEnabled = true
    }
}

viewDidLoad 中,您将在禁用 nextButton 之后添加目标操作。这是 viewDidLoad 的样子:

override func viewDidLoad() {
    super.viewDidLoad()
    // this sets the button to disabled...
    nextButton.isEnabled = false

    // this monitors the textField for the correct answer
    textField.addTarget(self, action: #selector(textFieldDidChange(textField:)), for: .editingChanged)
}

这是 a repo I created for you .

关于ios - 使用户仅在完成操作 IOS Swift 3 后才访问 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43244899/

相关文章:

objective-c - AudioPlayer 不在第二个 View Controller 上播放

ios - 如何覆盖此 Swift 属性?

iphone - 如何更改 UIPickerView 行中单个字符的字体颜色?

ios - View 显示在调试 View 层次结构中,但不显示在设备/sim 上

ios - 如何在 iOS 中安装用 Flutter 编写的应用程序?

ios - 如何使用覆盖调整捕获的图像

iphone - 针掉落动画

ios - UIScrollView 底部的 UIButton 不起作用

swift - 无法使用泛型分配给此表达式的结果

swift - 创建透明渐变并将其用作 SpriteKit 中的 alpha 蒙版