【发布时间】:2019-09-15 14:28:29
【问题描述】:
我在按钮的 clic 上激活的 UIView (A) 和另一个 UIView (B)(嵌入在导航控制器中)之间设置了“显示为弹出框”segue。
当我关闭它时,我正试图将数据从 (B) 传递回 (A)(我想同时保持弹出动画)。
我尝试了很多我在这里找到的方法,主要是在 Stackoverflow 上,但到目前为止,我从未成功检索到 (A) 上的数据。
我尝试了委托和协议以及其他更简单的方法。最后一个日期如下:
- 在 (A) 中,我只是尝试打印应该在 ViewWillAppear 中存储数据的变量:
class SearchBarsController: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchBarDelegate {
var testValue:String = ""
override func viewWillAppear(_ animated: Bool) {
print(testValue) // print is empty
super.viewWillAppear(animated)
}
}
- 在 (B) 中,我关闭弹出框并尝试通过按钮 clic 将数据发送回:
class SearchFilterViewController: UIViewController {
@IBAction func DismissPopoverOnClic(_ sender: Any) {
if let navController = presentingViewController as? UINavigationController {
let presenter = navController.topViewController as! SearchBarsController
presenter.testValue = "Test"
print("success") //never called
}
self.dismiss(animated: true, completion: nil)
}
}
在 (B) 上,我想设置一些过滤器,以便在 (A) 上使用以在表格视图中显示搜索结果。但实际上testValue的值总是空白的。
【问题讨论】:
-
您可以使用 Unwind Segue 从视图控制器 B 回到 A。如果您愿意,我可以为您制作一个示例项目。
标签: ios swift xcode segue popover