导航栏中的后退按钮不显示

时间:2018-04-07 21:04:12

标签: ios swift

我有一个连接到弹出控制器的视图控制器,它指向一个新的视图控制器。我想在导航项上添加一个后退按钮到最后一个视图控制器,这样当我点击它时它将返回到第一个视图控制器 我尝试在弹出控制器中创建segue和click动作,并在segue函数/单击动作函数中添加后退按钮 它们都不起作用

这就是我在Popover中所做的。我已经使用UIPopoverPresentationControllerDelegate呈现了popover,这就是PopoverVC的样子。通过这种方式,我添加IBAction以启用弹出框中标签的单击操作。我在IBAction函数中编写了后退按钮并使用rootview创建了导航控制器,并且后退按钮不会出现。

class PopoverViewController: UIViewController {
    //TODO: add BACK button
    @IBAction func createNewChat(_ sender: Any) {
        let storyboard = UIStoryboard(name: "Main", bundle:nil)
        let contactVC = storyboard.instantiateViewController(withIdentifier: "contacts") as? NewContactsViewController
        let nc2 = UINavigationController()
        let back = UIBarButtonItem()
        back.title = "Back"
        nc2.navigationItem.backBarButtonItem = back
        nc2.pushViewController(contactVC!, animated: true)
        self.present(nc2, animated: true, completion: nil)
    }
}

我还尝试了另一种方法,我在故事板中创建了一个segue并将popover连接到导航控制器,后退按钮仍然没有出现.segue连接到故事板中的导航控制器。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let seg = segue.destination as! ContactsTableViewController
    let back = UIBarButtonItem()
    back.title = "Back"
    navigationItem.backBarButtonItem = back
}

我的问题是:如何制作后退按钮?它出现后,如何使其工作?我不希望后退按钮指向弹出窗口,我希望后退按钮会让用户返回创建popoverVC的VC。

1 个答案:

答案 0 :(得分:1)

导航栏中的后退按钮不属于此视图控制器;它是已经在导航堆栈上的上一个视图控制器的后退按钮项。但是你没有以前的视图控制器。所以,只需使用一个左栏按钮项目,表示返回或其他内容。

因此,将条形按钮项(back)设为actiontarget并更改

nc2.navigationItem.backBarButtonItem = back

nc2.navigationItem.leftBarButtonItem = back