Мне было интересно, может ли кто-нибудь объяснить, почему выходные точки, которые являются объектами просмотра целевого ViewController в функции prepareForSegue(), установлены на нуль. Я могу только догадываться, что это означает, что в то время, когда вызывается PrepareForView, эти объекты еще не созданы. Разве это не имело бы смысла, хотя к тому моменту, когда у вас есть объект ViewController для вашего назначения, у вас также были бы инициализированы выходы объекта представления, связанные с ним? Я также знаю, что, вероятно, не очень хорошая практика напрямую изменять значения другого представления ViewController, но я просто хочу лучше понять внутреннюю работу Swift 3. Благодаря!Зачем просматривать объекты назначения ViewController по умолчанию для nil в prepareForSegue?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "ItemController"
{
let indexPath = tableView.indexPathForSelectedRow?.row
if let itemStruct = itemList[indexPath!] as ItemStruct?
{
let correspondingItemController : ItemController = segue.destination as! ItemController
if let textView = correspondingItemController.textView
{
print("This is not nil!") //this will NOT get hit. Why is this still nil??
}
correspondingItemController.itemStruct = itemStruct
}
}
}
Ответ: _at время 'подготовки (для segue' называется, эти объекты не создаются yet_ –