我想通过使用开关按钮来访问oneViewController到secondViewController?

时间:2019-01-22 06:12:14

标签: ios swift uiswitch

我想使用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)
            }
        }
    }
}

1 个答案:

答案 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中退出或弹出。 希望对您有帮助