我将用户发送到一个页面上的按钮点击。这个页面是一个UITableViewController。
现在如果用户点击一个单元格,我想把他推回到上一页。
我想到了self.performSegue("back")....但这似乎不是一个好主意。
正确的做法是什么?
我将用户发送到一个页面上的按钮点击。这个页面是一个UITableViewController。
现在如果用户点击一个单元格,我想把他推回到上一页。
我想到了self.performSegue("back")....但这似乎不是一个好主意。
正确的做法是什么?
当前回答
在这种情况下,你从UIViewController中呈现一个UIViewController,也就是。
// Main View Controller
self.present(otherViewController, animated: true)
简单地调用dismiss函数:
// Other View Controller
self.dismiss(animated: true)
其他回答
这个很适合我(Swift UI)
struct DetailView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
var body: some View {
VStack {
Text("This is the detail view")
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}) {
Text("Back")
}
}
}
}
试试这个: 对于前面的视图使用这个:
navigationController?.popViewController(animated: true)
弹出到根目录使用以下代码:
navigationController?.popToRootViewController(animated: true)
如果你想关闭前两个视图控制器,只需像这样调用popViewController两次:
self.navigationController?.popViewController(animated: true)
self.navigationController?.popViewController(animated: true)
Swift 5及以上
案例1:与导航控制器一起使用
回到之前的视图控制器 self.navigationController ?。会被(动画:真) 回到根视图控制器 self.navigationController ?。popToRootViewController(动画:真)
案例2:使用present视图控制器
self.dismiss(animated: true, completion: nil)
对于swift 3 您只需要编写下面这行代码
_ = navigationController?.popViewController(animated: true)