gpt4 book ai didi

ios - 如何在 Swift 4 中将数据从 RightViewController 发送到 MainView Controller?

转载 作者:行者123 更新时间:2023-11-28 23:54:14 24 4
gpt4 key购买 nike

enter image description here

您好,我正在使用 MMDrawerController 作为右侧菜单。我有 2 个 ViewController 第一个是 HomeVC,在 UICollectionView 中有产品列表数据,还有 1 个过滤器按钮。

当我按下过滤器按钮时,我将推送到过滤器屏幕 RightViewVC。现在我想要的是,我想将选定的过滤器值传递给 HomeVC。我该怎么做?

最佳答案

你可以通过多种方式做到这一点

<强>1。通过使用 block 方法

当您推送到 RightViewVC 时,请编写以下代码。

let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "RightViewVC") as! RightViewVC
nextViewController.delegate = self as! customeDelegate
nextViewController.onApplyFilterTap = {(_ arrSelectedFilter: NSMutableArray) -> Void in
self.collectionView.reloadData()
}
self.show(nextViewController, sender: self)

RightViewVC Controller 中定义它。我创建了数组,您可以根据需要更改它。

var onApplyFilterTap: ((_ arrSelectedFilter: NSMutableArray) -> Void)? = nil 

你需要这样调用

self.arrFilterSelection.add(whichButtonClicked)
self.arrFilterSelection.add(locationTextView.text!)
self.arrFilterSelection.add(byPriceToTextField.text!)
self.arrFilterSelection.add(byPriceFromTextField.text!)
self.arrFilterSelection.add(timeTextview.text!)

onApplyFilterTap!(self.arrFilterSelection)

<强>2。通过使用 NotificationCenter

在你的HomeVC中写下

NotificationCenter.default.addObserver(self, selector: #selector(refreshProductListBasedonSelectedFilterValue(_:)), name: NSNotification.Name(rawValue: "refreshProductListBasedonSelectedFilterValue"), object: nil)


@objc func refreshProductListBasedonSelectedFilterValue(_ notification: Notification) {
let info = notification.object as? NSDictionary

let arrSelectedFilteredValues = info?.value(forKey: "selectedFilter") as! NSMutableArray
self.collectionView.reloadData()
}

RightViewVC 你需要这样调用。

let dict = NSMutableDictionary()
dict.setValue(self.arrFilterSelection, forKey: "selectedFilter")
NotificationCenter.default.post(name: NSNotification.Name("refreshProductListBasedonSelectedFilterValue"), object: dict)

<强>3。您还可以使用委托(delegate)

关于ios - 如何在 Swift 4 中将数据从 RightViewController 发送到 MainView Controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51593312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com