在不干扰当前层次结构的情况下在Xcode中显示视图控制器的实例

Displaying instances of view controllers within Xcode without disturbing the current hierarchy(在不干扰当前层次结构的情况下在Xcode中显示视图控制器的实例)
本文介绍了在不干扰当前层次结构的情况下在Xcode中显示视图控制器的实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在生产一个在Xcode中用Swift编写的应用程序,我已经达到了一个开发点,在这个点上我需要能够实例化视图。理想情况下,我会更改程序的层次结构以包含"Main"或"Parent"视图,主视图将负责显示提供给它的视图。

我的目标是实例化其他视图控制器并将实例传递到主视图,然而,我对Xcode和Swift缺乏经验,我不确定如何在不改变整个情节提要层次结构的情况下包括主视图。

此处是提供当前结构的直观说明的图像。

其目的是更改层次结构以包括主/父/主视图,该视图将是一个空显示项,将在需要时显示所有视图,理想情况下,我将保留选项卡控件方法。

主要也是最重要的是,该视图将允许显示、关闭和刷新视图控制器的实例,而不会影响应用程序的其他方面。

代码在这里似乎无关紧要,因为我的视图由情节提要处理。这里对我真正有帮助的是简要说明我如何使用新的层次结构处理实例化。

预先感谢您对此事的任何帮助

推荐答案

视图控制器可以作为一个或多个子视图控制器的自定义父视图控制器,在其自己的视图界面中以任何所需的方式显示它们的视图。


您可以以任何所需的方式实例化视图控制器。如果您希望从情节提要中提取一个视图控制器实例(因为您已经在那里设计了它的视图),请调用:

https://developer.apple.com/documentation/uikit/uistoryboard/1616214-instantiateviewcontroller

情节提要中的视图控制器需要有情节提要ID字符串,以便您可以识别它。


以这种方式从情节提要中取出一个视图控制器后,要在您的界面中显示其视图,您必须执行以下操作:

  1. 父级调用https://developer.apple.com/documentation/uikit/uiviewcontroller/1621394-addchild

  2. 父级捕获视图控制器的view,并将其作为父级自己的视图的子视图放入界面。

  3. 父级调用https://developer.apple.com/documentation/uikit/uiviewcontroller/1621405-didmove

两个视图控制器现在处于合法的父子关系中,两个视图控制器都将正常工作。它们甚至可以相互指代。

如果要从界面中删除子视图控制器的视图,则必须反转:

  1. 父级使用nil参数调用https://developer.apple.com/documentation/uikit/uiviewcontroller/1621381-willmove

  2. 父级从界面中删除子视图控制器的视图

  3. 父级调用https://developer.apple.com/documentation/uikit/uiviewcontroller/1621425-removefromparent


请在主视图控制器文档页面上阅读&q;实现容器视图控制器:

https://developer.apple.com/documentation/uikit/uiviewcontroller

这篇关于在不干扰当前层次结构的情况下在Xcode中显示视图控制器的实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
iOS VoiceOver functionality changes with Bundle Identifier(IOS画外音功能随捆绑包标识符而变化)
tabbar middle tab out of tabbar corner(选项卡栏中间的选项卡角外)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
Dropbox Files.download does not start when number of files in folder is gt; 1000(当文件夹中的文件数为1000时,Dropbox Files.Download不会启动)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)