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