Цель
Я делаю приложение, чтобы увидеть 3D-модель с помощью комплекта Scene.
Swift 4.0
Xcode 10.1
Я хочу передать изображение.Я создаю изображение в SCNViewController (используя SCN View) и после этого перехожу в ViewController.Я хочу разделить случаи, когда я передаю изображение.Я думаю, что лучше использовать Segue.
Детализация Segue
Массив
Я использую массив в AppDelegate.Потому что я хочу добавить и добавить изображение в ViewController.Я не удаляю изображение при перемещении на другой ViewController.
Проблемы
Когда я пишу как показано ниже, оно сломается. Я использую функцию viewWillAppear.
ViewController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if appDelegate.isNewSCNStampAdded == true{
let scnstamp = appDelegate.scnstampArray.last!
func returnToTop(segue: UIStoryboardSegue) {
if segue.identifier == "backtoFirstcoma" {
mainImageView.image = scnstamp
mainImageView.contentMode = UIView.ContentMode.scaleAspectFit
print("1")
}else if segue.identifier == "backtoSecondcoma" {
print("2")
}else if segue.identifier == "backtoThirdcoma" {
print("3")
}else {
print("others")
}
}
appDelegate.isNewSCNStampAdded = false
}
}
(2-я идея)
Я попробовал другой способ.Я сделал "разделение", чтобы отличить.Но этот способ тоже не работает.Я не могу поймать информацию о «дележках» во времени viewWillAppear.
ViewController
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if appDelegate.isNewSCNStampAdded == true{
let scnstamp = appDelegate.scnstampArray.last!
switch dividegoes {
case "goone" :
mainImageView.image = scnstamp
print("1")
case "gotwo" :
secondImageView.image = scnstamp
print("2")
case "gothree" :
thirdImageView.image = scnstamp
print("3")
default:
print("Others")
}
}
appDelegate.isNewSCNStampAdded = false
}
}
SCNViewController
let dividegoes = "gozero"
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
switch segue.identifier {
case "backtoFirstcoma" :
let whiteVc = segue.destination as! ViewController
whiteVc.dividegoes = "goone"
print("go1")
case "backtoSecondcoma" :
let blueVc = segue.destination as! ViewController
blueVc.dividegoes = "gotwo"
print("go2")
case "backtoThirdcoma" :
let greenVc = segue.destination as! ViewController
greenVc.dividegoes = "gothree"
print("go3")
default:
print(“Others")
}
}
Как я могу разделить случаи в этомcase.
Если я удалю структуру if-else, она будет работать успешно.Но мне нужно разделить на 3 способа.
Сообщение об ошибке
, вид которого отсутствует в иерархии окон!
Моя идея
Я не смог использовать Segue в viewWillAppear...?Может быть, мне нужно использовать другой способ делить дела ...