segue 关闭时执行操作
Perform action when segue is closed
我有一个 ViewController,我在其中调用 segue 到另一个 ViewController:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == blogSegueIdentifier {
let destination = segue.destination as! Reply
let path = tableView.indexPathForSelectedRow
let cell = tableView.cellForRow(at: path!) as! QuestionsTabCell
destination.blogName = String(cell.labelQues!.tag)
}
}
在打开的segue (ViewController) 中,UINavigationBar 中有一个UITextView 和一个发送按钮。所以用户输入 textView 并将其发送到服务器点击按钮,然后在打开的 segue (ViewController) 关闭后用户 returns 到第一个 ViewController。如何在用户关闭 segue 而不使用 viewWillAppear 时首先调用方法 ViewController?
你好@Mr Jo 您可以为此目的使用 unwind segue。
在您的第一个 viewController 中声明一个方法:-
//MARK: - - Unwind Segue get data from select categories
@IBAction func unwindToAssignCatController(segue: UIStoryboardSegue) {
//get back data from selectcategory class
if segue.identifier == "segueIdentifier"{
let controller = segue.source as! Reply
// get your values from second viewController and use in first viewController
}
之后你必须 select 你的第二个 ViewController
1: 右击Controller,拖拽退出,会出现下面的方法
2:Select它并为其分配一个标识符。
3:然后在具有相同标识符的第二个 viewController 中对您想要的操作执行 segue。
如果您有 NavigationController,请尝试:(Objective-C)
FirstVC* firstVC = self.navigationController.viewControllers[self.navigationController.viewControllers.count
- 2]
导航堆栈中一系列 viewController 中的最后一个
如果您在没有 NavigationController 的情况下打开第二个 viewController,您可以获得第一个 viewController 的实例,例如:
FirstVC* firstVC = self.presentingViewController
请注意,呈现 VC 的实例将在转换完成后在此 属性 中可用,例如 viewDidAppear
,例如
我有一个 ViewController,我在其中调用 segue 到另一个 ViewController:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == blogSegueIdentifier {
let destination = segue.destination as! Reply
let path = tableView.indexPathForSelectedRow
let cell = tableView.cellForRow(at: path!) as! QuestionsTabCell
destination.blogName = String(cell.labelQues!.tag)
}
}
在打开的segue (ViewController) 中,UINavigationBar 中有一个UITextView 和一个发送按钮。所以用户输入 textView 并将其发送到服务器点击按钮,然后在打开的 segue (ViewController) 关闭后用户 returns 到第一个 ViewController。如何在用户关闭 segue 而不使用 viewWillAppear 时首先调用方法 ViewController?
你好@Mr Jo 您可以为此目的使用 unwind segue。
在您的第一个 viewController 中声明一个方法:-
//MARK: - - Unwind Segue get data from select categories @IBAction func unwindToAssignCatController(segue: UIStoryboardSegue) { //get back data from selectcategory class if segue.identifier == "segueIdentifier"{ let controller = segue.source as! Reply // get your values from second viewController and use in first viewController }
之后你必须 select 你的第二个 ViewController
1: 右击Controller,拖拽退出,会出现下面的方法 2:Select它并为其分配一个标识符。 3:然后在具有相同标识符的第二个 viewController 中对您想要的操作执行 segue。
如果您有 NavigationController,请尝试:(Objective-C)
FirstVC* firstVC = self.navigationController.viewControllers[self.navigationController.viewControllers.count
- 2]
导航堆栈中一系列 viewController 中的最后一个
如果您在没有 NavigationController 的情况下打开第二个 viewController,您可以获得第一个 viewController 的实例,例如:
FirstVC* firstVC = self.presentingViewController
请注意,呈现 VC 的实例将在转换完成后在此 属性 中可用,例如 viewDidAppear
,例如