Из того, что вы объясняете в своем вопросе и комментариях, я понимаю, что ваш код пытается получить доступ к объекту типа FirstViewController
, предположительно, к первому представлению, которое будет добавлено к вашему UINavigationController
, когда он еще не создан.
С другой стороны, если вы сначала программно выберите вкладку, представление будет создано, и все будет работать нормально.Действительно, это представление создается с помощью метода viewDidLoad
, который запускается при выборе вкладки.
Я хотел бы предложить решение, позволяющее избежать доступа к UINavigationController
visibleViewController
непосредственно с вкладки поиска;вместо этого позвольте вашему поисковому коду обратиться к модели (как в Model-View-Controller) для вашего приложения и сохранить там результат;затем из упомянутого метода viewDidLoad
снова получите доступ к модели, чтобы прочитать результат поиска и обновить / показать пользовательский интерфейс.
Это решение clean , IMO.Если вы хотите что-то вроде обходного пути к вашему текущему дизайну, то проверьте значение fVC
, которое вы получили от visibleViewController
, и если оно не соответствует ожидаемому, то создайте экземпляр представления должным образом.
Надеюсь, это поможет.