我有一个连接到弹出控制器的视图控制器,它指向一个新的视图控制器。我想在导航项上添加一个后退按钮到最后一个视图控制器,这样当我点击它时它将返回到第一个视图控制器 我尝试在弹出控制器中创建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。
答案 0 :(得分:1)
导航栏中的后退按钮不属于此视图控制器;它是已经在导航堆栈上的上一个视图控制器的后退按钮项。但是你没有以前的视图控制器。所以,只需使用一个左栏按钮项目,表示返回或其他内容。
因此,将条形按钮项(back
)设为action
和target
并更改
nc2.navigationItem.backBarButtonItem = back
到
nc2.navigationItem.leftBarButtonItem = back