как реализовать действие на переключателе с помощью Material (CosmicMind) - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь добавить переключатель в моем приложении.Я добавил его в раскадровку (IUView с классом Switch и модулем Material. Я использовал его в моем viewcontroller, но я не знаю, как выполнить действие над ним.

Я попытался добавить IBAction с подправкой внутрисобытие, но у меня ничего нет, когда я касаюсь его.

Спасибо.

Мой код:

import Foundation
import UIKit 
import Material

class SettingsVC: UIViewController {

    @IBOutlet weak var addCalendarSwitch: Switch!

    override func viewDidLoad() {
        super.viewDidLoad()

        addCalendarSwitch.delegate = self
        addObserver()
        setStyle()
        setView()
        getStatusAddCalendar()
    }

    func getStatusAddCalendar(){
        if UserDefaults.standard.bool(forKey: "addToCalendar") == true 
        {
            addCalendarSwitch.isOn = true
        }
        else {
            addCalendarSwitch.isOn = false
        }
    }
}

extension ViewController: SwitchDelegate {

    // utilise the delegate method
    func switchDidChangeState(control: Switch, state: SwitchState) {
        print("Switch changed state to: ", .on == state ? "on" : "off")
    }
}

иерархия

экран моего взгляда

1 Ответ

0 голосов
/ 20 ноября 2018

Глядя на примеры, кажется, что он использует шаблон делегата.https://github.com/CosmicMind/Samples/blob/master/Projects/Programmatic/Switch/Switch/ViewController.swift

import UIKit
import Material

class ViewController: UIViewController {

    // create an outlet and connect it from your storyboard
    @IBOutlet weak var mySwitch: Switch!

    override func viewDidLoad() {
        super.viewDidLoad()
        // use this outlet to assign the delegate
        mySwitch.delegate = self
    }
}

// conform to the protocol
extension ViewController: SwitchDelegate {

    // utilise the delegate method
    func switchDidChangeState(control: Switch, state: SwitchState) {
        print("Switch changed state to: ", .on == state ? "on" : "off")
    }
}
...