你如何从ViewController转向位于UITableView(位于NavigationController中)的ViewController?
Image of Storyboard with description
我可以控制 - 从“DetailButton”拖动到“DetailViewController”,但如果你这样做,它就不会显示在导航控制器中。 NavigationBar应该仍然允许用户返回UITableView,即使他们从“DetailButton”这里进行了干扰。
答案 0 :(得分:0)
这是我提出的解决方案。如果其他人有更好的方法,请在此处发布。
故事板步骤:
控制 - 拖动" DetailButton"到导航控制器创建一个segue。给这个segue标识符" detailSegue"。
控制 - 从UITableViewCell拖动您想要链接到DetailViewController到DetailViewController。将此segue命名为" showDetail"。
UITableViewController步骤:
var shouldSegueToDetail = false
override func viewDidLoad() {
...
// Check if we should segue to DetailViewController
if shouldSegueToDetail {
// Reset flag
shouldSegueToDetail = false
// Go to DetailViewController
performSegue(withIdentifier: "showDetail", sender: self)
}
}
OriginalViewController步骤:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "detailSegue" {
let navigationVC = segue.destination as! UINavigationController
let tableVC = navigationVC.viewControllers[0] as! UITableViewController
tableVC.shouldSegueToDetail = true
}
}
选项:
您可以使用所选项目的IndexPath调用UITableView的selectRow方法,而不是从UITableViewCell到DetailViewController进行segue。