swift - 编程 iOS 按钮以在第一次点击时执行操作,然后在第二次点击时继续
问题描述
我正在构建第 3 方 iOS 应用程序。作为我的主视图控制器的一部分,我为用户提供了按下按钮以直接链接到 iOS 键盘设置的选项,以便他们可以启用我的键盘。当他们返回应用程序时,它会将他们带到下一个视图,他们可以在空文本字段上测试键盘。
当用户点击应用程序上的启用键盘按钮时,我调用 IBAction 将它们链接到设置应用程序,如下所示:
@IBAction func enableKeyboard(_ sender: Any) {
let settingsUrl = URL(string: "\(UIApplicationOpenSettingsURLString)")!
UIApplication.shared.open(settingsUrl)
}
但是,我同时有一个 segue,textViewController
这样当用户从设置返回应用程序时,他们会立即转到 textViewController。
我如何能够对我的按钮进行编程,以便第一次点击将它们带到设置,它们返回到主视图控制器,然后第二次点击将它们带到下一个视图?
解决方案
翻转按钮的选中状态,然后在决定做什么时测试它。
@IBAction func touchUpInside(button: UIButton) {
if !button.isSelected {
button.isSelected = true
// Now open settings
} else {
// Perform segue
}
}
按钮类旨在跟踪它自己的状态,所以我相信这比在视图控制器中使用变量跟踪单击更可取,因为它只需要 2 个状态。
推荐阅读
- python - 如何在 tkinter sqlite 中使用占位符
- python - Pandas,Plotly 对秒进行分组而不重新采样
- c++ - CMake cpprestsdk
- java - 无论如何,是否可以使用 Java 代码从“PUBmed”文章中获取完整摘要
- javascript - JavaScript如何用另一个数组的每个元素替换数组的第一个元素
- amazon-web-services - 无法在 AWS 上设置 HashiCorp Vault
- node.js - Office 365 POP 提取邮件出现间歇性错误登录失败:未知用户名或密码错误
- ruby - 如何使用 unixODBC 从 DB2 V11.5 Linux 上的表 SYSIBM.SQLCOLUMNS 获取 column_def 值 - Ruby
- android - 单击登录按钮时应用程序崩溃(简单登录注册测试)
- spring-boot - Spring thymeleaf 模板引擎找不到模板文件