gpt4 book ai didi

ios - 从另一个 View 类重新加载 Collection View 数据

转载 作者:搜寻专家 更新时间:2023-10-30 21:52:08 24 4
gpt4 key购买 nike

我在一个 View 中有两个容器。最上面的有一个 Collection View 。当从下面的容器中点击一个按钮时,我想从一个按钮更新我的 Collection View 。我的按钮也在更改我的 Collection View 使用的数组的值。

我认为 didSet 可以完成这项工作,但不幸的是没有奏效。

顶部:

class TopViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {

@IBOutlet weak var favoritesCV: UICollectionView!

var myFavorites = [] {
didSet {
self.favoritesCV.reloadData()
}
}


override func viewDidAppear(animated: Bool) {
myFavorites = favoritesInstance.favoritesArray
}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return myFavorites.count
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

let cell : FavoritesCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! FavoritesCollectionViewCell

var myPath = myFavorites[indexPath.row] as! String
cell.myImage.image = UIImage(named: myPath)
return cell
}
}

底部:

class BottomViewController: UIViewController, UIScrollViewDelegate  {

@IBAction func addFavorites(sender: AnyObject) {
favoritesInstance.favoritesArray.append("aaaa.jpg")
}
}

存储类:

class Favorites {
var favoritesArray:Array <AnyObject>

init(favoritesArray:Array <AnyObject>) {
self.favoritesArray = favoritesArray
}
}

var favoritesInstance = Favorites(favoritesArray:[])

最佳答案

我已经添加了

NSNotificationCenter.defaultCenter().addObserver(self, selector: "loadList:", name:"load", object: nil)

在我的 Collection View 类的 viewdidload 中。还添加了一个选择器,它在通知中心调用时重新加载我的数据

func loadList(notification: NSNotification){
self.favoritesCV.reloadData()
}

对于按下按钮的其他类:

NSNotificationCenter.defaultCenter().postNotificationName("load", object: nil)

swift 3:

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

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil)

关于ios - 从另一个 View 类重新加载 Collection View 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879092/

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