Добавить пользовательский initialiser
к VC2
, который принимает selectedValue
.
class VC1: UIViewController {
@objc func onSelectOption(sender: UITapGestureRecognizer) {
let vc2 = VC2(selectedValue: "1")
navigationController?.pushViewController(vc2, animated: true)
}
}
class VC2: UIViewController {
var selectedValue: String?
init(selectedValue: String?) {
super.init(nibName: nil, bundle: nil)
self.selectedValue = selectedValue
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
print(selectedValue) //prints Optional("1")
}
}
Поскольку вы создаете VC2
без storyboard
, selectedValue
не будет установлен до тех пор, пока не будет вызван viewDidLoad()
.