Я хочу передать строковые данные из родительского vc в дочерний vc в swift 3.
My child vc - вид контейнера. Так что смотрите мой код:Передача данных в дочерний контейнерный вид
class ParentViewController: UIViewController
@IBOutlet var continerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let vc = storyboard?.instantiateViewController(withIdentifier: "ChildVCID") as! ChildViewController!
vc?.myStr = "Hello Bro"
addChildViewController(vc!)
continerView.addSubview((vc?.view)!)
didMove(toParentViewController: vc)
}
}
И мой код ребенка является:
class ChildViewController: UIViewController
var myStr:String!
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
print("Str is: ",myStr)
}
Так эта ошибка будет показывать:
Поэтому, как это исправить?
можете ли вы прикрепить свой проект ect –
, пожалуйста, шаг за шагом, например, просто не передавайте данные напрямую, попробуйте сначала загрузить представление (добавить subview). Если его удастся, а затем передать данные, попробуйте изменить код var myStr: String! to var myStr: String ?. Я уверен, что ваш код правильный, только у вас что-то отсутствует с дополнительными. –
Пожалуйста, правильно отформатируйте свой код. По крайней мере, убедитесь, что он правильно настроен. Есть много проблем, которые я могу определить. Ни один из классов не имеет открывающей скобки, вызов super.viewDidAppear не существует, выравнивание кода, пробелы между функциями, разворот силы - это зло ... и т. Д. –