我想使用UISwitch,当isON使用时,它应该在ViewController1 isOFF中,然后它必须转到下一个ViewController。有人可以帮我吗?
import Foundation
import Firebase
import FirebaseAuth
class HomeViewController: UIViewController {
@IBOutlet weak var citiPostSwitch:UISwitch!
@IBAction func switchToCitiPost (switchState: UISwitch){
if citiPostSwitch.isOn{
print("your in ViewConroller 1")
citiPostSwitch.setOn(false, animated: true)
} else{
citiPostSwitch.setOn(true, animated: true)
print("your in ViewController 2")
}
}
@IBAction func logOutAction(sender: AnyObject) {
if Auth.auth().currentUser != nil {
do {
try Auth.auth().signOut()
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SignUp")
present(vc, animated: true, completion: nil)
} catch let error as NSError {
print(error.localizedDescription)
}
}
}
}
答案 0 :(得分:-1)
在您的功能中,只需关闭要导航的第二个控制器的开关即可。
@IBAction func switchToCitiPost (switchState: UISwitch){
if citiPostSwitch.isOn {
citiPostSwitch.setOn(false, animated: true)
let vc = SecondViewController()
vc.switch.setOn(false, animated: true)
self.navigationController?.pushViewController(vc, animated: true)
}
}
来到控制器时,您将使开关处于关闭状态。
class SecondViewController: UIViewController {
@IBOutlet weak var `switch`: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
self.switch.addTarget(self, action: #selector(self.switchAction(_:)), for: .valueChanged)
}
@objc func switchAction(_ switchState: UISwitch) {
self.navigationController?.popViewController(animated: true)
}
}
在SecondView Controller中,只需执行开关操作,即可从Controller中退出或弹出。 希望对您有帮助