Не удается поделиться данными между контроллерами представления вкладок? - PullRequest
1 голос
/ 13 марта 2020

Я создаю приложение, в котором я беру пользовательский ввод и отображаю его в виде диаграммы, для которой требуется массив данных. Мне удалось сохранить данные в массиве с использованием основных данных, и я не могу понять, как передать эти данные с одной вкладки на другую 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] Я также пытался сделать синглтон, но это не сработало.

...