2017-01-13 4 views
0

Как передать данные из массива одного контроллера вида в другой контроллер?Как передавать данные с одного контроллера вида на другой?

FirstViewController:

var myArray = ["some data"] 

override func prepare(for segue: UIStoryboardSegue, sender: Any?){ 
    let destinationVC = segue.destination as! SecondViewController 
    destinationVC.passedArray = myArray 
} 

SecondViewController:

var passedArray = [String]() 

override func viewDidLoad(){ 
    super.viewDidLoad() 
    print(passedArray) 
} 
+1

Я вижу проблему синтаксиса. Это должно быть 'override func prepareForSegue (segue: UIStoryboardSegue !, sender: AnyObject!) {' ... from http://stackoverflow.com/a/24040979/354144 –

+1

@NealEhardt Подпись 'prepare (for: sender :) 'изменен в Swift 3. –

ответ

0

Вы можете попробовать это решение для передачи данных.

В FirstViewController.swift

let str = "Hello It's Done" 
func callsecondViewController() 
    { 
     let controller = storyboard?.instantiateViewController(withIdentifier: "second") as! secondViewController 
     self.present(controller, animated: true, completion: nil) 
    } 
func temp() -> NSString 
    { 
     return str as NSString 
    } 

в SecondViewController.swift

var data = [NSString]() 
    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
     let view = ViewController() 
     data = [view.temp()] 
     print(data) 
    } 

и вы получите выходной строки, как Hello это делается

+0

Вы можете либо представить использование' self.navigationController? .pushViewController (controller, animated: true) ', но убедитесь, что у вас есть контроллер навигации в стеке. –

+0

спасибо мужчинам! готово :) – user1781908

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