ios - Swift UIAlertAction segue 数据传递
问题描述
我正在使用 UIAlertAction 来询问用户是否要转到该用户个人资料。不知道我做错了什么,因为数据没有正确传递并返回 nil。不确定是否需要在 UIAlertAction 之外使用“prepareForSegue”...我猜 segue 在当前设置的数据之前通过?
let profileAction = UIAlertAction(title: "Go To Profile", style: UIAlertActionStyle.default, handler: { action in self.performSegue(withIdentifier: "followingfeed", sender: self)
let dataPass = self.feeds[sender.tag].dataPass
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender)
if segue.identifier == "followingfeed" {
let user = dataPass
let controller = segue.destination as? ExploreBusinessProfileSwitchView
controller?.otherUser = user
}
}
})
解决方案
prepareForSegue
应该是类的实例方法
let profileAction = UIAlertAction(title: "Go To Profile", style: UIAlertActionStyle.default, handler: { action in
self.performSegue(withIdentifier: "followingfeed", sender:self.feeds[sender.tag].dataPass)
})
//
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender)
if segue.identifier == "followingfeed" {
let user = sender as! [String:Any]
let controller = segue.destination as? ExploreBusinessProfileSwitchView
controller?.otherUser = user
}
}
推荐阅读
- powershell - WIQL 仅选择 System.* 列(类似于 SQL [select [table].* from [table]])
- c++ - 计数操作 - 嵌套循环中有多少个运算符?
- flutter - 如何在 Flutter 的 showSearch 的 SearchDelegate 中访问 BLoC
- java - 我想在共享按钮单击先发送图像而不是文本时分别发送图像和文本
- python - 在 numba 中,array(float64, 1d, C) 和 array(float64, 1d, A) 有什么区别?
- cassandra - 如何从故障检测器中删除 cassandra 节点
- python-3.x - 如何使用 Boto 3 显示 EC2 实例名称
- jquery - 我可以更改画布上图像对象的样式属性吗?
- r - 当列更改值时对数据框进行子集
- shopify - [Shopify]如何更改搜索结果的列表顺序?