ios - 使用 Swift 离开 View Controller 后自动关闭

标签 ios swift xcode

我在我的第一个 View Controller 中包含了一个开关,并使用以下代码来实现它的操作:-

class FirstViewController: UIViewController {

@IBOutlet weak var Image: UIImageView!
@IBOutlet weak var playerNum1Button: UIButton!
@IBOutlet weak var toggleSwitch: UISwitch!
  
override func viewDidLoad() {
    super.viewDidLoad()
}


@IBAction func numPlayers1(_ sender: Any) {
    
    performSegue(withIdentifier: "3to8segue", sender: self)
    
    
}
 @IBAction func toggleSwitch(_ sender: Any) {
    
    if (toggleSwitch.isOn == true) {
        
        Image.image = UIImage(named: "Image1")
        
    }
    else {
        
        Image.image = UIImage(named: "Image2")
        
    }
    
}
当我打开第一个 View Controller 中的开关时,它工作得很好。但是,在我转到第二个 View Controller 并再次返回到第一个 View Controller 后,开关会自动关闭。有关如何解决此问题的任何帮助?感谢你的帮助!

最佳答案

如果您的 Switch 切换将取决于 API 响应请询问“toggleState” bool 值的额外键,然后在 API 响应中设置其状态。
否则将“toggleState”键保存在 UserDefault 中,如下所示:-

@IBAction func toggleSwitch(_ sender: UISwitch) {
    
    if (toggleSwitch.isOn == true) {
        
        Image.image = UIImage(named: "Image1")
        
    }
    else {
        
        Image.image = UIImage(named: "Image2")
        
    }

   UserDefaults.standard.set(sender.isOn, forKey: "toggleState") 
    
}
然后在 ViewController 的“ViewWillAppear”方法中添加以下代码
override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
      self.toggleSwitch.setOn(UserDefaults.standard.bool(forKey: "toggleState"), animated: true)
      }
   }

关于ios - 使用 Swift 离开 View Controller 后自动关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63049329/

相关文章:

ios - 在swift中将容器 View 分成2个 Controller

ios - UIImage setImage 非常非常慢

ios - Swift 中的 Facebook SDK

Swift:将包含自定义标签的单元格添加到 UITableView

iphone - UIScrollView滚动检测

添加披露指示器时 ios8 单元格约束中断

swift - 在哪里调用 becomeFirstResponder(),在 ViewDidAppear 或 ViewWillAppear?

ios - 检查 NSURLrequest 是否有效?

ios - xCode:找不到库 - lPods-Bolts - 退出代码 1

objective-c - 不确认 Swift 中的 UITableViewDataSource 协议(protocol),为什么?