В приложении, которое я делаю, я пытаюсь разрешить вход/выход из твиттера. Я хочу, чтобы был элемент barbuttonitem, который говорит либо о входе в систему, если нет текущего пользователя, либо о выходе из системы, если он есть. Я создал две кнопки на раскадровке, одну для входа и одну для выхода. В viewDidLoad() у меня есть этот код:
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.rightBarButtonItem = nil
if twitterUser.currentUser != nil {
print("there is a current user")
self.navigationItem.rightBarButtonItem = logoutButton
} else {
self.navigationItem.rightBarButtonItem = loginButton
}
и, кажется, работает хорошо. Проблема возникает, когда пользователь действительно входит в систему или выходит из нее. Кнопки связаны со следующими функциями:
@IBAction func onLogin(sender: AnyObject) {
let client = twitterAPI.sharedInstance
client.login({ () -> () in
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.rightBarButtonItem = self.logoutButton
}) { (error: NSError) -> () in
print(error.localizedDescription)
}
}
@IBAction func onLogout(sender: AnyObject) {
twitterAPI.sharedInstance.logout()
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.rightBarButtonItem = self.loginButton
}
После входа в систему кнопка входа исчезнет, а кнопка выхода не появится. При выходе из системы кнопка выхода исчезает, а кнопка входа не появляется. Я не уверен, что может быть причиной этого, поскольку я использую те же методы в viewDidLoad, и, похоже, он работает нормально.
self.logoutButtonиself.loginButton. Распечатайте их описание, прежде чем назначать их. - person sschale   schedule 17.03.2016