当前位置: 首页 > 知识库问答 >
问题:

iOS嵌套视图控制器是否在UIViewController的视图中查看?

庄欣然
2023-03-14

在iOS中,将嵌套视图控制器的视图放在UIViewController的视图中通常是一种糟糕的编程实践吗?比如说,我想有一种互动元素来响应用户的触摸,但只占屏幕的25%。

我想我会将这个嵌套视图控制器添加到UIViewController中,方法如下:

[self.view addSubview: nestedViewController.view];

共有3个答案

左宁
2023-03-14

这是我的Swift 3解决方案,基于FB答案上的Swift开发者

 let childViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChildPageViewController"),
 self.addChildViewController(childViewController)
 self.view.addSubview(childViewController.view)
 childViewController.didMove(toParentViewController: self)
乐正镜
2023-03-14

我把这段代码放在父视图控制器中。它对我很有用。

Obj C

-(void)viewDidLoad{
     [super viewDidLoad];
     InnerViewController *innerViewController = [self.storyboard instantiateViewControllerWithIdentifier:INNER_VIEW_CONTROLLER];
     [self addChildViewController:innerViewController];
     [self.view addSubview:innerViewController.view];
     [innerViewController didMoveToParentViewController:self];
}

迅速:

 let childViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChildViewController"),
 self.addChildViewController(childViewController)
 self.view.addSubview(childViewController.view)
 childViewController.didMove(toParentViewController: self)
孟正志
2023-03-14

不,这通常是很好的设计,它有助于保持视图控制器的简洁。然而,您应该使用视图控制器包含模式,请查看以下留档。

实现容器视图控制器

使用带有故事板的接口生成器进行设置也非常简单,看看对象库中的容器视图。

下面是故事板中一个人为的例子。在本例中,您将有4个视图控制器,一个用于保存3个容器,另一个用于每个容器。当您呈现具有所有容器的最左侧控制器时,故事板将自动初始化并嵌入其他3个。您可以通过ChilViewController属性访问这些子视图控制器,或者有一个方法可以覆盖preareForSegue: sender:并捕获将要调用的segue的目标视图控制器。如果需要,这也是将属性传递给子视图控制器的一个好方法。

 类似资料:
  • 本文向大家介绍iOS是否可以 在一个视图控制器中嵌入两个tableview控制器?相关面试题,主要包含被问及iOS是否可以 在一个视图控制器中嵌入两个tableview控制器?时的应答技巧和注意事项,需要的朋友参考一下 答案:一个视图控制只提供了一个View视图,理论上一个tableViewController也不能放吧, 只能说可以嵌入一个tableview视图。当然,题目本身也有歧义,如果不是

  • 问题内容: 我没有找到有关此问题的文章,但没有一个解决我的问题。 就像我说的那样。 ViewControllerA ViewControllerB 我试图将添加为的子视图,但是它 抛出类似“ ” 的错误。 下面是代码… ViewControllerA ViewControllerB只是一个带有标签的简单屏幕。 ViewControllerB EDIT 根据用户答案的​​建议解决方案,ViewCon

  • 以下的一段代码相当于定义一个ParameterizableViewController视图控制器的快捷方式,该控制器会立即将一个请求转发(forwards)给一个视图。请确保仅在以下情景下才使用这个类:当控制器除了将视图渲染到响应中外不需要执行任何逻辑时。 以下是一个例子,展示了如何在MVC Java编程配置方式下将所有"/"请求直接转发给名字为"home"的视图: @Configuration

  • 本文向大家介绍iOS 访问容器视图控制器,包括了iOS 访问容器视图控制器的使用技巧和注意事项,需要的朋友参考一下 示例 当视图控制器出现在标签栏控制器中时,您可以像这样访问标签栏控制器: 迅速 目标C 当视图控制器是导航堆栈中的一部分时,您可以按以下方式访问导航控制器: 迅速 目标C            

  • 我在理解容器视图控制器的实现方式时遇到了一些麻烦。 我将一个容器拖到主视图控制器中,它会自动创建嵌入式视图控制器,并通过嵌入式segue连接。然后,我可以通过从主视图控制器访问它。 我有点困惑,在飞行中创建和使用这些。即我想用它作为警报视图。我是否只是初始化视图一次,然后在每次显示被触发时更改其内容?我应该调用或只是设置隐藏/动画视图进出? 发音有困难。希望有人会说新语,能理解我。

  • 我找到了一些关于这个问题的帖子,但是没有一个能解决我的问题。 说像我已经... ViewControlllerA ViewControlllerB 我试图将ViewControlllerB添加为ViewControlllerA中的子视图,但是,它抛出了一个错误,如""。 下面是代码。。。 视图控制器 ViewControllerB只是一个带有标签的简单屏幕。 视图控制器B 编辑