Кнопка выхода для представления контроллера представления входа - Swift 5 - PullRequest
0 голосов
/ 30 мая 2020

Привет, я новичок в Swift и не могу понять этого. Я пытаюсь создать кнопку выхода, которая перенаправит пользователя на страницу входа. Я использовал следующие два метода, но первый ничего не делает, а второй бросает Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value и относится к коду с customButton:

//this one doesn't do anything 
@objc func SignOut(){

    let vc = self.storyboard?.instantiateViewController(identifier: "LoginViewController") as! LoginViewController
    let appDelegate = UIApplication.shared.delegate
    appDelegate?.window??.rootViewController = vc
}


//this one is throwing an error 
let vc = CustomViewController()
self.present(vc, animated: true, completion: nil)



//the Fatal error refers to this code
override func viewDidLoad() {
    super.viewDidLoad()
    self.customButton.addTarget(self, action: #selector(customButtonPressed), for: .touchUpInside)
}

Кроме того, мне было интересно если AppDelegate - правильный подход или мне следует использовать SceneDelegate. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 30 мая 2020

Попробуйте сделать это

@objc func SignOut(){

    let vc = self.storyboard?.instantiateViewController(identifier: "LoginViewController") as! LoginViewController
    self.view.window?.rootViewController = vc
}
0 голосов
/ 30 мая 2020
let vc = self.storyboard?.instantiateViewController(identifier: "LoginViewController") as! LoginViewController
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)

Убедитесь, что идентификатор совпадает с идентификатором внутри раскадровки для этого viewController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...