当用户点击按钮时,我会将用户发送到一个页面。这个页面是一个UITableViewController。
现在,如果用户点击单元格,我希望将其推回到上一个页面。
我考虑过像self.performSegue("back")....
这样的方法,但这似乎是个坏主意。
正确的做法是什么?
当用户点击按钮时,我会将用户发送到一个页面。这个页面是一个UITableViewController。
现在,如果用户点击单元格,我希望将其推回到上一个页面。
我考虑过像self.performSegue("back")....
这样的方法,但这似乎是个坏主意。
正确的做法是什么?
Swift 4.0 Xcode 10.0,最后一个视图控制器是TabViewController
如果您的最后一个视图控制器嵌入在TabViewController中,则以下代码将将您发送到根视图...
navigationController?.popToRootViewController(animated: true)
navigationController?.popViewController(animated: true)
但是如果您真的想返回到上一个视图(可能是Tab1、Tab2或Tab3视图..),您需要编写以下代码:
_ = self.navigationController?.popViewController(animated: true)
1)转到目标(而不是源)视图控制器并添加取消连线:
@IBAction func unwindToContact(_ unwindSegue: UIStoryboardSegue) {
//let sourceViewController = unwindSegue.source
// Use data from the view controller which initiated the unwind segue
}
2) 从视图控制器本身按住CTRL键并拖动到原始视图控制器中的退出图标:
3) 选择刚才创建的取消操作函数:
4) 选择取消线(segue),并给它一个名称:
5)前往原视图控制器的任何位置,并调用取消返回操作的segue:
performSegue(withIdentifier: "unwindToContact", sender: self)
有关如何在Storyboard中将您的viewController嵌入到navigationController中的问题:
我是这样做的
func showAlert() {
let alert = UIAlertController(title: "Thanks!", message: "We'll get back to you as soon as posible.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
self.dismissView()
}))
self.present(alert, animated: true)
}
func dismissView() {
navigationController?.popViewController(animated: true)
dismiss(animated: true, completion: nil)
}
self.navigationController?.popViewController(animated: true)
self.navigationController?.popViewController(animated: true)