我有三个视图控制器,每个都在同一个自定义视图控制器类和一个页面视图控制器下。我希望能够重用这三个视图控制器,但在子视图上使用不同的内容。但是,当我尝试从页面视图控制器使用[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