2017-01-10 3 views
0

Итак, у меня есть dataModel, который вытягивает массивы из plist с использованием моего класса datasource. На мой взгляд, контроллер я называю класс источника данных сКак передать источник данных на второй контроллер View? Swift

let dataSource = DataSource() 

, а затем я хватаю значения из массива с

abilities = dataSource.ability[monster.ability! + 2] 

Мой вопрос, когда я беру Datasource от второго Viewcontroller, есть 2 -4-секундная задержка во время переходного периода. Как я могу передать источник данных по второму viewcontroller, так что я могу читать значения без необходимости звонить let dataSource = DataSource() из второго контроллера?

ответ

1

Существует несколько способов управления передачей информации с одного контроллера вида на другой.

Однако для вашего сценария я бы рекомендовал создать свойство массива в вашем втором контроллере представления, который будет хранить ваш источник данных, но только передав его с вашего первого контроллера просмотра, вызвав метод prepare(for segue: UIStoryboardSegue, sender: Any?).

Вот пример того, как я передал простые данные в другой контроллер зрения, в значительной степени Master-Detail установки:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let destinationViewController = segue.destination as? DetailNoteViewController 

    if segue.identifier == "toNoteDetailView" { 
     guard let indexPath = tableView.indexPathForSelectedRow else { return } 

     let note = self.notes[indexPath.row] 
     destinationViewController?.note = note 
    } 
} 
+0

Так что я попробовал то, что вы сказали. Кажется, это звучит, но я столкнулся с проблемой. Я не могу использовать идентификатор '[indexPath.Row]' в segue. Должен ли я переместить оператор if в 'didSelectItemAt'? – baxu

+0

, вы можете отредактировать свой ответ с помощью фрагмента кода. [IndexPath.row] используется, чтобы получить позицию объекта в массиве, соответствующем tableView, чтобы он мог передать объект во второй контроллер представления –

Смежные вопросы