Files
eqn.ios/Sources/Earthquake Network/Models/Settings/SettingItem.swift
T
Andrea Busi 1792f4b4bb refactor: Move settings as tab section
- 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
2020-09-01 19:27:54 +02:00

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
}
}