когда вы нажимаете на меню, удаляете предыдущее значение Userdefault и каждый раз устанавливаете новое значение по умолчанию для пользователя.
Поместите этот код и получите новый индекс каждый раз, и если он не выбран, то старое значение вы получите в Userdefaults
let userDefaults = UserDefaults.standard
userDefaults.removeObject(forKey: "index")
userDefaults.set(i, forKey: "index")
EDIT1
ИСПОЛЬЗУЙТЕ ЭТО В НЕКОТОРЫХ, КОТОРЫЕ ВЫ ОПРЕДЕЛЯЕТЕ ПОСТОЯННО ТОЛЬКО ОДИН РАЗ
let userDefaults = UserDefaults.standard
Если вы используете или любой другой метод, который я не знаю, но если вы получите правильный indexpath, тогда этот код будет работать
menuView.didSelectItemAtIndexHandler = {(indexPath: Int) -> Void in
var placesdeger: String = ""
userDefaults.removeObject(forKey: "indexPath")
if indexPath == 0 {
let userDefaults = UserDefaults.standard
UserDefaults.standard.setValue(indexPath, forKey: "indexPath")
placesdeger = "Yatak Odası"
}
if indexPath == 1 {
UserDefaults.standard.setValue(indexPath, forKey: "indexPath")
placesdeger = "Oturma Odası"
self.refreshData()
}