1
在一個應用程序進行中,我試圖啓用登錄/註銷到Twitter。我想要它,以便有一個barbuttonitem,要麼說,如果沒有當前用戶登錄,要麼登錄,如果有的話。我在故事板上創建了兩個按鈕,一個用於登錄,另一個用於註銷。在viewDidLoad()中,我有這樣的代碼:BarButtonItem沒有顯示
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中使用相同的方法,它似乎工作正常。
傳遞給登錄()塊主線程上執行?如果您在onLogin()和onLogout()中打印某些內容,您是否看到這些消息? –
您可能會取消您的'self.logoutButton'和'self.loginButton'。在分配它們之前打印它們的描述。 – sschale