Выполнить Seque для ViewController - PullRequest
0 голосов
/ 07 октября 2019

У меня есть ViewController, который называется ViewImages. Внутри раскадровки я установил переход от VC (желтый значок) к ViewImages. Я отправил идентификатор для displayExtraImages и правильно настроил модально

Внутри моего кода, у меня есть это:

let destinationVC = ViewImages()
            destinationVC.itemId = self.currentItemsArray[indexPath.row].itemID

            destinationVC.performSegue(withIdentifier: "displayExtraImages", sender: self)

Наконец, я получаю следующую ошибку:

2019-10-06 19:12:40.994388-0400 SoldFor[21403:762477] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<SoldFor.ViewImages: 0x7fc2fff35360>) has no segue with identifier 'displayExtraImages''

Но у меня есть идентификатор ... так что я немного запутался. Любая помощь будет великолепна.

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

У вас есть 2 варианта

Первый

let destinationVC = // load the vc from storyboard 
destinationVC.itemId = self.currentItemsArray[indexPath.row].itemID 
self.present(destinationVC,animated:true,completion:nil)

Второй

 self.performSegue(withIdentifier: "displayExtraImages", sender:self.currentItemsArray[indexPath.row].itemID )

и агрегат

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "displayExtraImages"  {
      let  vc = segue.destination as! ViewImages
      vc.itemId  = sender as! Int
   }
}
1 голос
/ 07 октября 2019

Все в этом коде неверно:

  • Это не пункт назначения , который поддерживает последовательность. Это источник - который, вероятно, просто self. Так что просто скажите себе , чтобы выполнить переход, и все будет в порядке.

  • Не не попытайтесь установить destinationVC.itemId, пока мы не достигнемprepare(forSegue:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...