1792f4b4bb
- Rewrite Settings controller in Swift - Move settings as tab bar item - Force settings save when user change tab or back from a sub-setting controller
68 lines
1.9 KiB
Swift
68 lines
1.9 KiB
Swift
//
|
|
// SettingItem.swift
|
|
// Earthquake Network
|
|
//
|
|
// Created by Busi Andrea on 25/08/2020.
|
|
// Copyright © 2020 Earthquake Network. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
|
|
@objc enum SettingType: Int {
|
|
case detail
|
|
case enable
|
|
case slider
|
|
case segmented
|
|
case date
|
|
case multiValues
|
|
}
|
|
|
|
@objcMembers
|
|
class SettingItem: NSObject {
|
|
let title: String
|
|
let subtitle: String?
|
|
let segue: String?
|
|
let icon: String?
|
|
let emoji: String?
|
|
let type: SettingType
|
|
|
|
var displayTitle: String {
|
|
if let emoji = emoji {
|
|
return "\(emoji) \(title)"
|
|
}
|
|
return title
|
|
}
|
|
|
|
// MARK: - Init
|
|
|
|
convenience init(type: SettingType, title: String) {
|
|
self.init(type: type, title: title, subtitle: nil, segue: nil, icon: nil, emoji: nil)
|
|
}
|
|
|
|
convenience init(type: SettingType, title: String, subtitle: String) {
|
|
self.init(type: type, title: title, subtitle: subtitle, segue: nil, icon: nil, emoji: nil)
|
|
}
|
|
|
|
convenience init(type: SettingType, title: String, segue: String) {
|
|
self.init(type: type, title: title, subtitle: nil, segue: segue, icon: nil, emoji: nil)
|
|
}
|
|
|
|
convenience init(type: SettingType, title: String, segue: String, icon: String) {
|
|
self.init(type: type, title: title, subtitle: nil, segue: segue, icon: icon, emoji: nil)
|
|
}
|
|
|
|
convenience init(type: SettingType, title: String, segue: String, emoji: String) {
|
|
self.init(type: type, title: title, subtitle: nil, segue: segue, icon: nil, emoji: emoji)
|
|
}
|
|
|
|
init(type: SettingType, title: String, subtitle: String? = nil, segue: String? = nil, icon: String? = nil, emoji: String? = nil) {
|
|
self.type = type
|
|
self.title = title
|
|
self.subtitle = subtitle
|
|
self.segue = segue
|
|
self.icon = icon
|
|
self.emoji = emoji
|
|
}
|
|
}
|