It happens that you need to save the previously selected value in the UISegmentedControl. Below is this solution for Swift 4.x-5.0 which I use in my application.

It would seem that there is difficult? After all, you just need to save the previously selected value. But just such a small function includes all the code below.

class ViewController: UIViewController {

    @IBOutlet weak var segmentedControl: UISegmentedControl!

    @IBAction func segmentSelected(_ sender: UISegmentedControl) {

        UserDefaults.standard.set(sender.selectedSegmentIndex, forKey: "chosenOption")
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        if let value = UserDefaults.standard.value(forKey: "chosenOption"){
            let selectedIndex = value as! Int
            segmentedControl.selectedSegmentIndex = selectedIndex
        }

    }
}
Categories: App development