我有这个类,使用以下代码。基本上每次显示此页面时,应在检查用户是否登录后立即执行segue。
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)
}
}
我遇到的问题是,一旦我从堆栈中弹出上一页,并且它返回到此代码,就不会执行segue。如果我将其放在viewWillAppear
下,我的导航已损坏。
在意外状态下完成导航转换。 导航栏子视图树可能已损坏)
我不知道现在该做什么。我正在寻找的东西:当我从导航控制器弹出我的视图控制器时,上面的类应该每次都检查用户是否登录,并且转到正确的页面。
答案 0 :(得分:0)
如果您的ViewWillAppear被触发,但ViewDidAppear未被触发。检查您是否遗漏super.viewDidAppear(animated)
。请参阅讨论here