ナビゲーションビューコントローラでログインVCと呼ばれるビューコントローラが1つあります。LoginVc.Firstボタンの2つのボタンを押すと、signUp Screenに移動します。セカンドボタンは忘れ去られますパスワード画面をプッシュセグとして表示します。ナビゲーションコントローラでビューコントローラを呼び出す方法
私のアプリにログインして入力すると、ログアウトと呼ばれるボタン名が1つあります。ユーザーがログアウトボタンを押したときのようなコード機能を書いています。ログアウトする "。ユーザーが押すと再びログイン画面に移動します。
ユーザがログアウトした後、ログイン画面が表示され、ユーザが自分の2つのボタンを押すと[i。 eはパスワードを忘れたことを意味します。画面にサインアップします。]その後、クラッシュします。
クラッシュレポート:
Terminating app due to uncaught exception 'NSGenericException', reason: 'Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
は、ボタンのコードログアウトマイ:
let vc: UINavigationController = storyboard.instantiateViewControllerWithIdentifier("LoginViewController") as! UINavigationController
しかし、どのようにすることができます私は同じproblem.Nowを取得しています:
@IBAction func LogoutButton(sender: AnyObject) {
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "ISLOGGEDIN")
NSUserDefaults.standardUserDefaults().synchronize()
dispatch_async(dispatch_get_main_queue(), {
let alert = UIAlertController(title: "Logout Successful", message: "You have successfully logged out.", preferredStyle: UIAlertControllerStyle.Alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default){action -> Void in
let loginViewController = self.storyboard?.instantiateViewControllerWithIdentifier("LoginViewController") as? LoginViewController
let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = loginViewController
})
// show the alert
self.presentViewController(alert, animated: true, completion: nil)
})
}
を、私はこの行を追加してみてください私は自分のログアウトボタンアクションメソッドに自分のコードを書きます。ナビゲーションバーでログイン画面にリダイレクトする。
私を助けてください。ありがとう!
このチュートリアルを見てみましょう:http://code.tutsplus.com/tutorials/ios-from -scratch-with-swift-navigation-controllers-and-view-controller-hierarchy-cms-25462 –
ログインしてナビゲーションコントローラをナビゲートするサンプルコードを投稿できますかscren – user5513630
これは、上記の答えで、このロジックを理解するチュートリアルをチェックしています。 –