2017-03-05 9 views
-1

ユーザーがログインボタンをタップすると、アプリケーションはWebサービスの資格情報をチェックし、ユーザーが承認されていればユーザー名とパスワードはuserDefaultsに保存されます。アプリケーション)ログアウトボタンの動作が無効

私は次のページでログアウトボタンを使用しています(ログインが成功した後にログアウトします)。これは機能していないログアウトボタンのコードです。

私によれば、ログアウトのタップでuserDefaultsが削除され、ログインページに戻るはずです。 現在、私は外観について心配していません、ちょうどコードを助けてください。

ボタンを追加する機能。ログアウトボタンの

override func viewDidLoad() 
     { 
      super.viewDidLoad() 
      let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.trash, target: nil, action: #selector(self.logoutButtonTapped(_:))); 
      navigationItem.rightBarButtonItem = doneItem; 
      // Do any additional setup after loading the view. 
     } 

機能:

func logoutButtonTapped(_ sender: Any) 
    { 
     let defaults = UserDefaults.standard 
     defaults.removeObject(forKey: "userName") 
     defaults.removeObject(forKey: "userPassword") 
     let newViewObject = storyboard?.instantiateViewController(withIdentifier: "LoginPageViewController") as! LoginPageViewController //LoginPageViewController is my login view file, and identifier also has the same name. 
     navigationController?.pushViewController(newViewObject, animated: true) 
    } 

これが私のストーリーボードです。プログラムでボタンを追加しています。最初のVCとしてログインVC場合 enter image description here

+0

のようなアクションはあなたがself' –

+0

を表示することができます呼び出します://makeapppie.com/tag/uinavigationcontroller-in-swift/ –

答えて

0

、その後、この場所で呼び出す

let newViewObject = storyboard?.instantiateViewController(withIdentifier: "LoginPageViewController") as! LoginPageViewController //LoginPageViewController is my login view file, and identifier also has the same name. 
    navigationController?.pushViewController(newViewObject, animated: true) 

使用

_ = navigationController?.popViewController(animated: true) 

_ = navigationController?.popToRootViewController(animated: true) 

更新答え

例えば

navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(logoutButtonTapped)) 

ため

func logoutButtonTapped(_ sender: Any) 
    { 
     let defaults = UserDefaults.standard 
     defaults.removeObject(forKey: "userName") 
     defaults.removeObject(forKey: "userPassword") 
     _ = navigationController?.popToRootViewController(animated: true) 

    } 

func logoutButtonTapped() { 

    let defaults = UserDefaults.standard 
    defaults.removeObject(forKey: "userName") 
    defaults.removeObject(forKey: "userPassword") 

    // _ = navigationController?.popViewController(animated: true) 

    _ = navigationController?.popToRootViewController(animated: true) 



} 
+0

が、例えばこれを見るHTTPS 'に' target'を設定して、あなたのstroyboardシーン –

+0

確かに私はそれを見て、私はこの答えを試してみます。ありがとうございました。 :) 私はストーリーボードイメージで私の質問を更新しました。 –

+0

あなたはサインインボタンアクションをすることができます –

関連する問題