0
私はこのクラスを持っている
をポップnavigationcontrollerたびにセグエいます。基本的には、このページが表示されるたびに、ユーザーがログインしているかどうかを確認した上で、すぐにセグを実行する必要があります。次のコードで、スタック
class UserExistsOrNotViewController: UIViewController, UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.delegate = self
// Do any additional setup after loading the view.
}
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
viewController.viewDidAppear(true)
print("test")
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let realm = try! Realm()
let openSearchItem = realm.objects(User).count
if openSearchItem == 0 {
performSegueWithIdentifier("notLoggedIn", sender: self)
} else {
performSegueWithIdentifier("loggedIn", sender: self)
}
}
私がいる問題は、私がスタックから前のページをポップ、そしてそれは、このコードに戻ったら、セグエが行われていないことです。 viewWillAppear
の下に置くと、ナビゲーションが壊れてしまいます。予期しない状態でのナビゲーション遷移を仕上げ
。 ナビゲーションバーのサブビューツリーが壊れている可能性があります)
私は今何をすべきか分かりません。私が探しているもの:navigationcontrollerからviewcontrollerをポップすると、上記のクラスは、ユーザーがログインしているかどうかを毎回チェックし、正しいページにセグをする必要があります。
を参照してください、私はそれを追加しましたが、それは、発射のために違いはありませんでした。しかし、私はtabBarControllerも持っています(上記のコードは最初のエントリポイントです) – SoundShock
tabBarControllerのviewDidAppearをオーバーライドしましたか? –
こんにちは、私はあなたの提案を実装しようとしましたが、それは私のために動作していないようです。コードを更新しました – SoundShock