如何在 Swift 的另一个 ViewController 中打印选定的单元格数据?
Posted
技术标签:
【中文标题】如何在 Swift 的另一个 ViewController 中打印选定的单元格数据?【英文标题】:How to print the selected cell's datas in another ViewController in Swift? 【发布时间】:2018-05-02 01:09:54 【问题描述】:我不知道如何解决这个逻辑问题。这是我需要的: 在一个数组中,我有客户姓名。我在 tableView 中打印这些名称。当点击客户名称时,您将被重定向到包含所选客户订单的其他 viewController。
问题是,我必须将这些数据存储在核心数据中。所以客户的名字在一个数组中,订单也在一个数组中。但我不知道如何将两个不同的数组相互分配。
基本上:当在tableView中点击客户名称时,它必须推送到下一个具有该点击客户订单的viewController。
我必须做一些数据库设计或将客户数组分配给订单数组吗?我真的很困惑。
等待您的建议。谢谢!!!
【问题讨论】:
上传您的 tableview cellforrow、didselect 和 prpareforsegue(如果您使用)。没有上传代码的人如何帮助你 【参考方案1】:如果我正确理解了您的问题,您会发现很难将每个客户与相应的订单数组联系起来。 为此,您有一个客户数组,并创建一个字典,其键是客户名称,值是 orderArray。因此,如果您在表格视图中点击某个客户,您会从字典中获取相应的订单数组,您可以将其传递给下一个视图控制器。
【讨论】:
【参考方案2】:如果我理解正确的话。只需执行以下操作即可。
例如:- 你有和Entity
命名为 OrderInfo,在里面你有四个 Attributes
customerName、address、orderID 和 city。
所以你要做的就是使用你的数组和名字来列出tableView
中的东西。那么逻辑就简单了,比如使用didSelectRowAt
,就可以得到选中的名字。将此名称传递给 nextVC 之类的。
我会用storyBoardID
来做[你也可以用你的方式来传递这个]。
第一个 VC:
let objNextVC = self.storyboard?.instantiateViewController(withIdentifier: "NextVC") as! NextVC
objNextVC.strName = your_selected_NameHere
self.navigationController?.pushViewController(objNextVC, animated: true)
NextVC:
var strName:String = String()
现在逻辑开始了,我假设您还在 CoreData [名称数组中的名称] 中存储了相同的名称。如果不是,我建议您这样做以减少您的额外工作量。
现在在 NextVC 中只需从顶部声明的strName
中获取名称字符串
并应用以下代码获取数据。
CoreData 匹配和获取查询:
func update()
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "OrderInfo")
do
let results = try context.fetch(request)
if results.count > 0
for result in results as! [NSManagedObject]
if let name = result.value(forKey: "customerName") as? String
if name == strName
print(result)
let name = result.value(forKey: "customerName")
let address = result.value(forKey: "address")
let orderID = result.value(forKey: "orderID")
let city = result.value(forKey: "city")
//Use it the way you like
do
try context.save()
self.navigationController?.popViewController(animated: true)
catch
catch
如果一切都很好,如果数据在那里。你会得到你想要的输出。
干杯!
【讨论】:
以上是关于如何在 Swift 的另一个 ViewController 中打印选定的单元格数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Swift SpriteKit 中的另一个 SKScene 访问变量
如何将数据从 Playground 页面传递到 Swift Playgrounds 中的另一个 Playground 页面?
如何从 SWIFT 3 中的另一个 ViewController 检查 UISwitch 的状态?