【发布时间】:2023-10-03 17:34:01
【问题描述】:
全部。
我已经浏览了一遍,努力寻找答案。对于我的一生,我知道我可以解决这个问题,但是,我正在苦苦挣扎。
以下代码执行并将 changeURL 推送到另一个视图控制器。这个 changeURL 变量设置为“if”语句,其中 true 将一个字符串附加到 URL,false 附加另一个。
API 工作正常。一切正常。
但是,当我加载 UISwitch 下方的初始视图时,它已经打开。我按回车键,我得到填充内容的返回表视图。
import UIKit
class DashboardViewController: UIViewController {
@IBOutlet weak var warningLabel: UILabel!
@IBOutlet weak var clickToEnterButton: UIButton!
@IBOutlet weak var explicitSwitch: UISwitch!
// @IBAction func urlSwitch(_ sender: UISwitch) {
// performSegue(withIdentifier: "goToTableView", sender: explicitSwitch)
// }
@IBAction func enterButton(_ sender: UIButton) {
performSegue(withIdentifier: "goToTableView", sender: clickToEnterButton)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.destination is JokesTableViewController {
let vc = segue.destination as? JokesTableViewController
vc?.changeURL = explicitSwitch.isOn
}
}
}
如果我随后将 UISwitch 切换到“关闭”位置,则会引发故障。
'invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution.'
我知道开关正在工作,因为如果我在访问视图后将开关设置为 false,然后再次单击 Enter,它会向我显示第二个 API - 下面的代码。
import UIKit
class DashboardViewController: UIViewController {
@IBOutlet weak var warningLabel: UILabel!
@IBOutlet weak var clickToEnterButton: UIButton!
@IBOutlet weak var explicitSwitch: UISwitch!
// @IBAction func urlSwitch(_ sender: UISwitch) {
// performSegue(withIdentifier: "goToTableView", sender: explicitSwitch)
// }
@IBAction func enterButton(_ sender: UIButton) {
performSegue(withIdentifier: "goToTableView", sender: clickToEnterButton)
}
func explicitSwitchOff(){
explicitSwitch.setOn(false, animated: true)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.destination is JokesTableViewController {
let vc = segue.destination as? JokesTableViewController
vc?.changeURL = explicitSwitch.isOn
explicitSwitchOff()
}
}
}
理想情况下,我认为我需要将开关的值(真或假)与 UISwitch 操作分开。然后将其附加到 UIButton 操作?
高度赞赏任何想法。
谢谢。
【问题讨论】:
-
嗨,基尚。我确实遇到了那个解决方案。我在没有视觉帮助的情况下很难理解它!
标签: ios swift generics ios13 uiswitch