当从segue显示视图时,Navbar消失

时间:2016-04-23 14:54:42

标签: ios swift uitableview uinavigationcontroller

我有一个具有嵌入式NavigationController的TableViewController。还有一个ViewController可以向tableview添加新位置。 这显示了故事板的相关部分 enter image description here

当用户点击选择位置时,通过NavigationController到LocationChoiceTableViewController有一个segue动作...显示的缩短版本是...... enter image description here

正如您所看到的,我的导航栏显示有两个按钮来添加或编辑列表。如果用户单击“添加”,则segue操作会将它们带到AddLocationViewController ... enter image description here 用户添加新位置的详细信息并单击添加具有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不为null,则将值插入数组(在正确的排序位置)并将数组保存到NSUserDefaults ...所有这些都如下面的屏幕截图所示... enter image description here

我的问题是我使用编辑/添加按钮丢失了导航栏。我添加了行self.navigationController?.setNavigationBarHidden(false, animated: true)但是从AddLocationViewController返回时导航栏没有显示。

任何帮助解决这个问题都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

尝试在viewWillAppear中编写self.navigationController?.setNavigationBarHidden(false,animated:true)..这可能对你有帮助..

答案 1 :(得分:0)

修复了......我改变了我的故事板,以便AddLocationViewController上的取消和添加按钮的segue动作转到NavigationController,而不是LocationChoiceTreeViewController。

enter image description here