我有 UITabBarController,其中一个选项卡指向 UINavigationController。UINavigationController rootViewController 属于 BGProfileView 类,它显示用户的个人资料
在 viewDidAppear,我安排如果用户没有登录,它将推送一个 BGLogin 视图控制器。
[BGLogin alreadyLoggedin:self.navigationController hideBackButton:YES anddoBlock:^{
[self whatToDoAfterLogin];
}];
现在一切都很好,但有一个小问题。如果我再次按下选项卡,BGLogin 将从 UINavigationController 中弹出。
我不知道是什么让 BGLogin 弹出来。
如果我选择不同的选项卡,然后单击返回 BGPProfile 选项卡,则不会发生这种情况。当我单击同一个活动选项卡时,就会发生这种情况。所以我在 BGPProfile 选项卡中,我再次单击该选项卡。基本上,当我选择应该什么都不做的活动选项卡时会发生这种情况。事实上,它对别人没有任何作用。
我在 viewWillDisappear 中放置了一个断点,这就是我所看到的:
如您所见,viewDidAppear 由主循环调用。但是为什么mainloop调用viewDidAppear?通常有一个代码说类似 nav popViewController