我的iOS应用程序的第一个屏幕是登录屏幕+位于底部的注册按钮。它嵌入在导航视图控制器中,但导航栏在下一个屏幕从右侧滑入时成功登录之前变得不可见。这很好用。
问题是当点击注册按钮后注册视图(模态)向上滑动。注册视图嵌入在另一个导航控制器中,它包含位于其滑动视图顶部的导航栏。与此同时,从顶部开始,第二个导航栏(空)也向下滑动。第二个导航栏立即被模态视图覆盖,但是片刻屏幕闪烁,这很烦人。
我发现了这个错误!
登录视图控制器具有以下方法:
override func viewWillDisappear(_ animated: Bool) {
navigationController?.setNavigationBarHidden(false, animated: animated)
super.viewWillDisappear(animated)
}
有必要恢复登录后视图控制器中的导航栏,但在注册视图控制器中产生恼人的效果。所以我删除了它,相反,我将片段插入登录后的视图控制器:
override func viewWillAppear(_ animated: Bool) {
navigationController?.setNavigationBarHidden(false, animated: animated)
super.viewWillAppear(animated)
}