Я создал меню настроек программно, и оно использует перечисления и регистры для информации о ячейке.
enum SettingsSection: Int, CaseIterable, CustomStringConvertible {
case Social
case Communications
var description: String {
switch self {
case .Social: return "General"
case .Communications: return "Communication"
}
}
}
Проблема возникает, когда я пытаюсь заставить ячейку выполнить переход. В этом файле Swift нет «я». Итак, я сделал функцию в View Controller и попытался использовать ее для выполнения перехода:
var description: String {
switch self {
case .editProfile: return "Edit Profile"
case .logout:
SettingsViewController().Logout()
return "Log Out"
}
}
И она не выдаст ошибку, пока я не запущу приложение и не нажму на ячейку, появляется следующая ошибка:
Get It Done[8620:987786] Warning: Attempt to present <Get_It_Done.ViewController:
0x1017af660> on <Get_It_Done.SettingsViewController: 0x1017aed20> whose view is not in the window hierarchy!
Optional("Log Out")
Вот что Logout () делает в SettingsViewController:
public func Logout() {
let vc = ViewController() //your view controller
self.present(vc, animated: true, completion: nil)
}