Swift u按“后退”按钮时导航栏消失

Swift u按“后退”按钮时导航栏消失,swift,xcode,uinavigationcontroller,Swift,Xcode,Uinavigationcontroller,您可以在tableview中搜索用户,当我点击一行时,它会显示UInavigation controller(如图)中的“后退”按钮,从tableview将我带到配置文件页面-但是,当我从tableview单击“后退”时,顶部的“后退”按钮和UI导航控制器将消失,您只能通过滑动返回。我不知道为什么会这样 Tableview有一个嵌入页面视图控制器的导航控制器,页面视图控制器保存UIView控制器 代码1显示表格视图代码2显示配置文件页面。 非常感谢您的帮助 导入UIKit 导入Firebase

您可以在tableview中搜索用户,当我点击一行时,它会显示UInavigation controller(如图)中的“后退”按钮,从tableview将我带到配置文件页面-但是,当我从tableview单击“后退”时,顶部的“后退”按钮和UI导航控制器将消失,您只能通过滑动返回。我不知道为什么会这样

Tableview有一个嵌入页面视图控制器的导航控制器,页面视图控制器保存UIView控制器

代码1显示表格视图代码2显示配置文件页面。 非常感谢您的帮助

导入UIKit
导入FirebaseFirestore
进口火基
来自大学的类列表:UIViewController、UISearchBarDelegate{
@ibvar搜索栏:UISearchBar!
@IBVAR表格视图:UITableView!
var大学:String=“”
var users=[String]()
变量filteredUsers=[String]()
var搜索=false
重写func viewDidLoad(){
super.viewDidLoad()
tableView.delegate=self
tableView.dataSource=self
searchBar.delegate=self
tableView.reloadData()
}
func searchBarTextDidBeginEditing(searchBar:UISearchBar){
searchBar.becomeFirstResponder()
}
func searchBar(searchBar:UISearchBar,textDidChange searchText:String){
filteredUsers=users.filter({$0.lowercased().prefix(searchText.count)==searchText.lowercased()})
搜索=真
tableView.reloadData()
}
覆盖函数视图将出现(uo动画:Bool){
self.navigationController?.navigationBar.isHidden=false
让docRef=Firestore.Firestore().collection(“用户大学”).document(大学)
docRef.getDocument{(文档,错误)位于
如果let document=document{
让data=document.data()
设keydict=data!.keys
设stringArray=Array(keydict)
打印(字符串数组)
用于stringArray中的用户{
中的service.getUsernameFromUID(用户){(用户名)
self.users.append(用户名)
}
}
}否则{
打印(“文档不存在”)
}
}
DispatchQueue.main.async{
self.tableView.reloadData()
}
searchBar.becomeFirstResponder()
}
覆盖函数视图将消失(u动画:Bool){
users.removeAll()
}
}
大学用户的扩展列表:UITableViewDelegate,UITableViewDataSource{
func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
如果搜索{
返回filteredUsers.count
}否则{
返回用户数
}
}
func tableView(tableView:UITableView,cellForRowAt indexath:indexPath)->UITableViewCell{
让cell=tableView.dequeueReusableCell(带有标识符:“cell”)!
如果搜索{
cell.textLabel?.text=filteredUsers[indexPath.row]
}否则{
cell.textlab?.text=用户[indexPath.row]
}
返回单元
}
func tableView(tableView:UITableView,didSelectRowAt indexPath:indexPath){
让cell=tableView.cellForRow(at:indexPath)!
让username=cell.textLabel!.text??“
let storyboard=UIStoryboard(名称:“搜索”,捆绑:nil)
将newVC=storyboard.instanceeviewcontroller(带有标识符:“ProfilePage”)设为!ProfileViewController
newVC.username=用户名
//让navigationController=UINavigationController()
self.navigationController?.pushViewController(newVC,动画:true)
}

}
您可以使用
视图将显示
将其设置为可见

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.setNavigationBarHidden(false, animated: true)
}

您可以使用
viewwillbeen
将其设置为可见

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.setNavigationBarHidden(false, animated: true)
}

感谢工作-我还必须删除navigationController?。视图中的setNavigationBarHidden(true,动画:true)将从配置文件页中消失以使其工作感谢工作-我还必须删除navigationController?。视图中的setNavigationBarHidden(true,动画:true)将从配置文件页中消失以使其工作