Я знаю, что это повторяющийся вопрос, но я не нашел решения для своей проблемы. У меня два контроллера. Переменная HomeViewcontroller значения «myValue» не может быть задана с помощью класса ViewController. Я не знаю этой проблемы, но код работает без ошибок. Но когда я печатаю «myValue», он показывает nil. Контроллер представления не является контроллер, который я хочу установить значение переменной. Контроллер представления назначения - это контроллер панели вкладок, поэтому я хочу установить значение переменной для первой панели вкладок и вторых контроллеров представления панели вкладок. Это мой код: -Почему невозможно установить значение переменной viewController с помощью другого viewController?
import UIKit
class ViewController: UIViewController {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if(segue.identifier == "gotoHome") {
println("1111")
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var viewController = storyboard.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
viewController.myValue = 8888
}
}
}
это другой контроллер представления
import UIKit
class HomeViewController: UIViewController {
var myValue: Int!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
println(myValue)
}
}
Проблема заключается в том, что контроллер представления назначения не является контроллером, который я хочу установить значение переменной. –
@ChathurangaSilva Затем вам нужно изменить соединение segue на правильный VIewController, который вы хотите нажать. – iphonic
он печатает значение в 'viewDidLoad', которое вызывается, когда представление загружается из раскадровки. В этот момент 'myValue' еще не имеет значения, потому что он установлен после создания экземпляра представления. – donnywals