gpt4 book ai didi

ios - secondVC 中的结构数组未从 firstVC 附加

转载 作者:行者123 更新时间:2023-11-28 15:13:44 27 4
gpt4 key购买 nike

我创建了一个结构并创建了一个该类型的数组。该结构由两个变量组成:

struct notesarray
{
var prioritycolor : UIColor
var note : String
}

在我的第二个包含 collectionViewController 的 VC 中,我创建了一个类型为 notesarray 的数组。我从 firstVC 发送 prioritycolor 和 note 的值。

稍后我将设置 CoreData,现在我只希望它以最简单的方式工作。我将数据从 firstVC 附加到这个数组,如下所示:

@objc func handleCheckButton()
{
print("Added")
let secondVC = AddedNotesCollectionViewController()

secondVC.allnotes.append(notesarray(prioritycolor: taskTextView.backgroundColor!, note: taskTextView.text))
print(secondVC.allnotes.count)

taskTextView.text = nil

}

allnotes 是在 secondVC 中找到的数组的名称。

出于测试目的,我正在打印 secondVC.allnotes.count,但无论我向数组添加元素多少次,我在控制台中都只得到“1”。我还通过将 print(allnotes.count) 放在 secondVC 的 viewDidAppear func 下进行了测试,这样每当我去 secondVC 时,它都会给我数组中的元素计数但是它也每次都显示“0”。

我不知道我在这里做错了什么。请帮我!

最佳答案

那是因为每次按下按钮时,您都会得到一个新的 AddedNotesCollectionViewController 实例。

let secondVC = AddedNotesCollectionViewController()

新实例是用一个空数组启动的,你可以通过调用

向它添加一个元素
secondVC.allnotes.append(notesarray(prioritycolor: taskTextView.backgroundColor!, note: taskTextView.text))

因此计数始终为一。 iOS 是正确的,我的 friend :)

您需要:

如果第二个 VC 已经通过将其推送到 FirstVC 的导航堆栈加载,或者如果它已呈现,则获取对呈现/推送的 VC 的引用,而不是每次都创建一个新的。 SO 中有很多答案解释了如何访问推送/模态呈现的 VC :)

如果您要呈现/推送 SecondVC,正如您在评论中提到的,您始终可以使用 prepareForSegue 来传递数据。

如果您的 AddedNotesCollectionViewController 从未出现,那么请考虑创建 notesArray单例实例,您将在多个 VC 之间共享它。

希望对你有帮助

关于ios - secondVC 中的结构数组未从 firstVC 附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47219211/

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