我有三個視圖控制器,每個都在同一個自定義視圖控制器類和一個頁面視圖控制器下。我希望能夠重用這三個視圖控制器,但在子視圖上使用不同的內容。但是,當我嘗試從頁面視圖控制器使用[self.storyboard instantiateViewControllerWithIdentifier:identifier]
實例化其中一個視圖控制器時,使用一種方法在緊隨其後的標記中查找子視圖,則返回的子視圖爲空。有沒有什麼方法可以通過編程實例化視圖控制器後通過標記獲取子視圖?以編程方式實例化自定義視圖控制器並通過標記獲取子視圖
0
A
回答
1
視圖控制器的視圖在被顯示之前不會被創建。他們不會調用instantiateViewControllerWithIdentifier:
你應該把一個訪問viewDidLoad
,viewWillAppear
,或viewDidAppear
視圖控制器的意見碼之後創建。
您不應該嘗試從外部對象操縱視圖控制器的視圖。這違反了封裝原則,這是面向對象設計的一個重要原則。 (它也往往不起作用,因爲你發現了。)
如果你需要通過編程方式對視圖做些事情,你應該向視圖控制器添加一個或多個公共方法,並調用這些方法來請求視圖控制器對其觀點進行調整。
相關問題
- 1. 以編程方式獲取視圖控制器的實例
- 2. 以任何方式通過編程獲取segue(和目標視圖控制器)?
- 3. initWithCoder:自定義視圖 - 確定正在實例化的視圖控制器
- 4. 以編程方式確定目標視圖控制器
- 5. 實例化和推視圖控制器編程自定義初始迅速
- 6. Swift - 以編程方式實例化視圖控制器時丟失的元素
- 7. 以編程方式在視圖控制器中訪問視圖
- 8. 以編程方式在子視圖的控制器中更改子視圖
- 9. Android數據綁定以編程方式實例化視圖
- 10. 哪個視圖控制器正在實例化目標視圖控制器?
- 11. 如何以編程方式導航到視圖控制器,並通過數據
- 12. 實例化視圖控制器Swift 3標籤欄控制器
- 13. 以編程方式更改子視圖控制器
- 14. 以編程方式在Android中的自定義視圖中添加子視圖
- 15. Swift - 以編程方式將自定義Xib視圖作爲子視圖添加
- 16. 用IBOutlets初始化視圖控制器到自定義視圖
- 17. 使用實例方法以編程方式添加子視圖
- 18. MonoTouch的實例化視圖控制器編程爲ContainerView
- 19. 在編程實例化表視圖控制器
- 20. 以編程方式將視圖控制器分配給標籤欄控制器
- 21. 以編程方式設置標籤欄控制器視圖控制器
- 22. 從一個表視圖實例化多個視圖控制器
- 23. 自定義容器視圖控制器
- 24. iphone以編程方式初始化標籤欄控制器視圖
- 25. iPhone以編程方式選擇標籤並推送視圖控制器
- 26. iOS視圖控制器遏制|子視圖控制器通過觸動父視圖控制器
- 27. 讀取通過從視圖控制器
- 28. 以編程方式從視圖控制器設置iOS設置視圖
- 29. 視圖控制器:如何以編程方式在視圖之間切換?
- 30. iOS自定義視圖控制器
我試着把代碼放在三個視圖方法中,但是它只是改變子視圖,就像你說的那樣,視圖即將被顯示,這不是我正在尋找的,因爲我希望信息在視圖中已經。在顯示視圖之前,我無法對這些子視圖進行調整嗎? – insertawordhere
viewDidLoad在創建視圖控制器的視圖**之後調用,但在顯示**之前調用。這是視圖控制器加載視圖時進行一次性設置的地方。 –
這似乎是不同的滾動瀏覽量,因爲我的子視圖沒有改變,直到我完全滑動到視圖時,使用viewDidLoad。我最終使用viewDidLayoutSubviews,這是我需要的。謝謝您的幫助 – insertawordhere