Swift - push & pop не работает UIViewcontroller - PullRequest
0 голосов
/ 12 ноября 2019

У меня проблемы с моим ViewControllers. Кто-нибудь знает, почему этот код не работает? Функция print работает ...

от A до B

    @IBAction func editButtonTapped(_ sender: Any) {
    let imageCollectionView = self.storyboard?.instantiateViewController(withIdentifier: "ImageCollectionVC") as! ImageCollectionViewController
    imageCollectionView.delegate = self
    self.navigationController?.pushViewController(imageCollectionView, animated: true)
    print("editButtonTapped")
}



}

    extension ExampleViewController: ClassBDelegate {
            func childVCDidComplete( with image: UIImage?) {
                self.pickedImage = image!
            }
    }

B до A

 protocol ClassBDelegate {
    func childVCDidComplete(with image: UIImage?)
}

class ImageCollectionViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout{

    @IBOutlet weak var imageCollectionView: UICollectionView!

    var delegate: ClassBDelegate?
var tappedImage = UIImage()

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
   tappedImage = images[indexPath.row]
   delegate?.childVCDidComplete(with: tappedImage)
   navigationController?.popViewController(animated: true)
}

Это мой полный проект: https://github.com/chriskonnerth/Wishlist

ViewController A в моем случае - ExampleViewController, а B - ImageCollectionViewController

UPDATE

это мой раскадровка:

ImageViewController - правый, а ExampleViewController - тот, что ему оставлен.

enter image description here

1 Ответ

1 голос
/ 12 ноября 2019

Проверьте экземпляр navigationController в строке кода ниже:

self.navigationController?.pushViewController(imageCollectionView, animated: true)

Если self.navigationController равен нулю, возможно, у вас не установлен встроенный контроллер навигации с вашим ExampleViewController .

Затем вам нужно встроить свой первый контроллер с контроллером навигации. Для добавления контроллера навигации -

Embed navigation option

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