Swift 将segue连接到导航控制
在我使用Segue在视图控制器之间传输数据之前Swift 将segue连接到导航控制,swift,uitableview,segue,Swift,Uitableview,Segue,在我使用Segue在视图控制器之间传输数据之前 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "Edit List" { if let currentTodo = todoReadyForEditing, let editControler = segue.destination as? ListPageController {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Edit List" {
if let currentTodo = todoReadyForEditing, let editControler = segue.destination as? ListPageController {
editList.prepare(for: currentList)
}
现在计划已更改,我应该将数据从第一个视图控制器传输到tableViewController
。因为我想在tableViewController
页面上有一个导航栏,所以我在它前面添加了一个navigationBarController
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Edit List" {
if let currentTodo = todoReadyForEditing, let editControler = segue.destination as? ListTableViewController {
editList.prepare(for: currentList)
}
问题是,当我将segue直接连接到UITableViewController时,一切正常,与之前一样,我有两个视图控制器,但导航栏被隐藏了,我不希望这样。正如我所读到的,显然我必须首先将segue连接到navigationViewController,但如果我没有连接,数据将不会传输到表视图控制器
有什么建议吗?提前感谢您的帮助segue的目标是
UINavigationController
,但您可以使用它的topViewController
属性,它是您的控制器
guard let navCon = segue.destination as? UINavigationController,
let controller = navCon.topViewController as? ListTableViewController else { fatalError("Segue wasn’t set right") }
无论如何,我建议您不要使用segues,而是通过编程方式使用嵌入式控制器创建
UINavigationController
,非常感谢亲爱的Robert