Я создаю приложение, в котором я беру пользовательский ввод и отображаю его в виде диаграммы, для которой требуется массив данных. Мне удалось сохранить данные в массиве с использованием основных данных, и я не могу понять, как передать эти данные с одной вкладки на другую TabViewController.
Здесь показано, как данные хранятся и извлекаются в FirstViewController
let number = Numbers(context: PersistenceService.context)
number.numberInArray = Int16(numberEnteredInSlider)
PersistenceService.saveContext()
testArray.append(Int(Double(number.numberInArray)))
var numbers = [Numbers]() // Where Numbers = NSManaged Class
var fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Numbers")
do {try numbers = PersistenceService.context.fetch(fetchRequest) as! [Numbers]
for number in numbers {
print(number.numberInArray)
}
}catch {
print("error")
}
и вот вывод (напечатанный массив тестов):
SAVED
2
5
6
5
Теперь я хочу поделиться этим тестовым массивом с одного контроллера представления на другой (chartsViewController), это то, что я пробовал
class chartsViewController: UIViewController {
let mainVC = mainViewController(nibName: "mainViewController", bundle: nil)
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print(mainVC.testArray)
updateGraph()
func updateGraph() {
var lineChartEntry = [ChartDataEntry]() //this is the Array that will eventually be displayed on the graph.
for i in 0..<mainVC.testArray.count {
//
let value = ChartDataEntry(x: Double(i), y: Double(mainVC.testArray[i]))
// here we set the X and Y status in a data chart entry
lineChartEntry.append(value)
// here we add it to the data set
}}
//only showing the part needed. I have tried the same solution with another array and it worked.
}
и вывод будет [0]
Я также пытался сделать синглтон, но это не сработало.