Для меня это похоже на проблему с управлением памятью.
Первая проблема: создание контроллера представления с инициализатором по умолчанию, таким как ViewController()
, почти никогда не является правильным решением. потому что у него не будет никакого содержимого просмотра.
Вы не объясняете, как ваши NextViewController
и ваши ViewController
создаются и отображаются.
Похоже, что NextViewController
имеет слабую ссылку на ViewController
, и точка делегата ViewController
также является слабой (ссылки на делегатов почти всегда должны быть слабыми.)
Эта строка:
weak var vc:ViewController? = ViewController()
заставит NextViewController
создать экземпляр ViewController
, который никому не принадлежит, поэтому он будет немедленно освобожден, а переменная vc
вернется к нулю. К тому времени, когда вы доберетесь до NextViewController
viewDidLoad, vc
станет нулевым, поэтому необязательное связывание в строке vc?.delegate = self
ничего не сделает.
NextViewController
переменная vc
почти наверняка должна быть сильной ссылкой, а не слабой, но вы не показываете, как ViewController
когда-либо отображается на экране, поэтому неясно, что вы пытаюсь сделать.