Можно ли сделать переход в случае в Swift? - PullRequest
2 голосов
/ 20 января 2020

Я создал меню настроек программно, и оно использует перечисления и регистры для информации о ячейке.

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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...