2017-09-14 66 views
1

我有一個視圖控制器和一個UISearchBar在它的導航控制器。我添加了一個Container View,然後它包含2個ViewController。prepareForSegue在ViewDidload之前調用容器視圖的VC

我需要將一個變量傳遞給我的容器視圖和容器視圖的視圖控制器。然而,我不能這樣做,因爲prepareForSegue發生早於我的主要VC的viewDidLoad()

我需要將這些變量傳遞給我的容器視圖,但這些變量初始化

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    print("prepare for segue FirstViewController") 

    if segue.identifier == "mapViewContainer" { 
     let vc = segue.destination as! MasterMapViewController 
     vc.segmentControl = self.container 
     vc.resultsViewController = self.resultsViewController 
     vc.searchController = self.searchController 
    } 
} 

Picture

+0

你有沒有可能展示你試過的東西?一些代碼?它確實幫助我們能夠幫助你。 – dfd

+0

現在我將添加一些代碼:D – Persian

+0

創建一個變量來容納對容器的視圖控制器的引用...在prepareForSegue中,將該變量設置爲'segue.destination' ...在'viewDidLoad()'中,那麼您可以使用該變量在包含的視圖控制器中設置數據。 – DonMag

回答

0

嘗試之前在viewDidLoad不初始化這些變量prepareForSegue被調用,但在prepareForSegue方法。

+0

是的,這就是我做的,它工作得很好。我想知道這是否會造成麻煩? – Persian

+0

@Persian,你別無選擇。在演出之前你必須準備好演出;] –

相關問題