繁体   English   中英

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

[英]Back button in Navigation bar not displayed

我有一个视图控制器连接到一个弹出控制器,它指向一个新的视图控制器。 我想将导航项上的后退按钮添加到最后一个视图控制器,以便当我单击后退时它将返回到第一个视图控制器我尝试在弹出控制器中创建转场和单击动作并在转场功能中添加后退按钮单击操作功能它们都不起作用

这就是我在 Popover 中所做的。 我已经用 UIPopoverPresentationControllerDelegate 展示了 popover,这就是 PopoverVC 的样子。 这样我就添加了IBAction来启用popover中标签的点击动作。 我在IBAction函数中写了backbutton,用rootview创建了navigationcontroller,back按钮没有出现。

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 并将弹出窗口连接到导航控制器,后退按钮仍然没有出现。 segue 连接到故事板中的导航控制器。

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

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

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

因此,给栏按钮项( back )一个actiontarget并改变

nc2.navigationItem.backBarButtonItem = back

nc2.navigationItem.leftBarButtonItem = back

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM