仅在完成操作IOS Swift 3后才使用户访问视图[关闭]

Posted

技术标签:

【中文标题】仅在完成操作IOS Swift 3后才使用户访问视图[关闭]【英文标题】:Make a user access a view only after it has completed an action IOS Swift 3 [closed] 【发布时间】:2017-04-06 02:58:24 【问题描述】:

如何让用户只有在完成操作后才能访问视图?例如,仅当用户在 Swift 3 for ios development 中正确回答了先前视图中的问题时才访问视图

【问题讨论】:

这是一个非常广泛的问题,没有代码。你的视图控制器在做什么?它是一个测验应用程序,一遍又一遍地显示相同的东西,还是你正在做某种身份验证,一旦你的问题得到回答,你就在寻找新的 viewController? 【参考方案1】:

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

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

FirstViewController 中,您可以有一个IBOutlet 到一个nextButton 和一个textField,如下所示:

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

您还可以控制并拖动一个 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。

【讨论】:

非常感谢!!我一直在努力解决这个问题,但现在一切都清楚了!非常感谢你! :D 如果对您有帮助,请接受答案并点击向上箭头 :)

以上是关于仅在完成操作IOS Swift 3后才使用户访问视图[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

仅在第一个功能完成后才执行功能 - ios

如何仅在第一个完成后才发出后续 API 请求?

WPF TextBlock 仅在所有工作完成后才显示所有日志消息

Vue:在路线更改时,仅在完成加载后才呈现页面

如何仅在 Swift 中访问从相机拍摄的图像,就像 iOS 中的画廊一样?

iOS第一个UICollectionViewCell图像仅在使用约束后才加载