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