从 segue 显示视图时导航栏消失
Posted
技术标签:
【中文标题】从 segue 显示视图时导航栏消失【英文标题】:Navbar dissapears when view is displayed from segue 【发布时间】:2016-04-23 14:54:41 【问题描述】:我有一个嵌入了 NavigationController 的 TableViewController。还有一个 ViewController 可以向 tableview 添加新位置。 这显示了故事板的相关部分
当用户点击一个选择位置时,会有一个通过 NavigationController 到 LocationChoiceTableViewController 的 segue 动作......显示的缩短版本是......
如您所见,我的导航栏显示了两个按钮来添加或编辑列表。如果用户单击添加,segue 操作会将他们带到 AddLocationViewController... 用户添加新位置的详细信息,然后单击添加,它有一个 segue 操作返回到 LocationChoiceTableViewController,将输入的值作为单个连接字符串 (newLocationtoPass) 传递回
LocationChoiceTableViewController 类中的 viewDidLoad 有....
override func viewDidLoad()
super.viewDidLoad()
self.resultsController.tableView.dataSource = self
self.resultsController.tableView.delegate = self
if let savedLocations = defaults.objectForKey("locations") as? NSData
locations = NSKeyedUnarchiver.unarchiveObjectWithData(savedLocations) as![String]
if newLocationtoPass != nil
// we have a new location passed via segue from AddNewLocationViewController
//add new location to locations array and sort
insertSorted(&locations, newItem: newLocationtoPass)
// save location array to NSUserDefaults
saveLocationArray()
self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationItem.leftBarButtonItem = self.editButtonItem()
self.searchController = UISearchController(searchResultsController: self.resultsController)
self.tableView.tableHeaderView = self.searchController.searchBar
self.searchController.searchResultsUpdater = self
self.searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
如果 newLocationtoPass 不为空,则将值插入数组(在正确的排序位置)并将数组保存到 NSUserDefaults...所有这些工作如下面的屏幕截图所示...
我的问题是我丢失了带有编辑/添加按钮的导航栏。我添加了 self.navigationController?.setNavigationBarHidden(false, animated: true)
行,但从 AddLocationViewController 返回时导航栏不显示。
任何解决此问题的帮助将不胜感激。
【问题讨论】:
【参考方案1】:尝试在 viewWillAppear 中编写 self.navigationController?.setNavigationBarHidden(false, animated: true) ..这可能对您有所帮助..
【讨论】:
抱歉...视图显示方式没有变化【参考方案2】:已修复...我更改了 Storyboard,以便从 AddLocationViewController 上的 Cancel 和 Add 按钮的 segue 操作转到 NavigationController 而不是 LocationChoiceTreeViewController。
【讨论】:
以上是关于从 segue 显示视图时导航栏消失的主要内容,如果未能解决你的问题,请参考以下文章
从 iphone 上的 push segue 导航返回时,顶部导航栏变得可见
从自定义导航栏展开 segue 后,如何切换回默认导航栏外观?