Я запускаю Xcode 7.3 и используя Swift 2.2. У меня возникают проблемы с передачей данных с моего первого контроллера представления на второй контроллер представления. Я создал переменную string
в моем первом контроллере представления, который удерживает выбранную строку в представлении таблицы, и она работает. Я также создал другую переменную string
в моем втором контроллере представления, который должен содержать имя выбранной строки, а затем передать текст на метку.Как передать выбранную строку строки в виде таблицы на другую страницу ViewController? (Swift 2)
import UIKit
import Parse
import ParseUI
class FruitListPage: UIViewController, UITableViewDelegate, UITableViewDataSource {
var selectedFruit = String()
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let fruitName:Scanner2 = self.storyboard?.instantiateViewControllerWithIdentifier("scanPage") as! Scanner2
fruitName.loadView()
let nameShop = textArray[indexPath.row]
print(nameShop)
selectedFruit = nameShop
print(selectedFruit)
fruitName.selectedFruit2 = selectedFruit
}
Все работает полностью мелкий блок здесь в первом контроллере представления, и я могу видеть имя фрукты каждый раз, когда я нажмите строку в Tableview. Реальная проблема заключается в том, что строка selectedFruit2
во втором контроллере просмотра никогда не захватывает данные с первого контроллера представления. Любая подсказка?
import UIKit
import Parse
class Scanner2: UIViewController {
@IBOutlet var fruitNameLabel: UILabel!
var selectedFruit2 = String()
override func viewDidLoad() {
super.viewDidLoad()
print(selectedFruit2)
}
}
Документация 'loadView':« Вы никогда не должны вызывать этот метод напрямую ». Также обратите внимание, что вы устанавливаете 'selectedFruit2' _after_, вы загрузили представление. Удаление 'loadView', вероятно, устранит вашу проблему, хотя' viewWillAppear (_ :) 'будет, вероятно, безопаснее, чем' viewDidLoad' – Sulthan