问题标签 [childviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2251 浏览

ios - 呈现/呈现视图控制器和父/子视图控制器之间的交互是否记录在任何地方?

阅读有关 iOS 中 UIViewControllers 更改的文档,我试图弄清楚呈现模式视图控制器之间的交互如何在自定义容器视图控制器内部工作。最终,我希望能够可靠地遍历一系列呈现的视图控制器,即使其中一些控制器是由子视图控制器呈现的。

(我正在开发一个库,而不是应用程序,所以我没有创建我将与之交互的层次结构。我只是想确保我的库能够在不同类型的层次结构中正常工作。)

所以我的问题归结为,当有人试图从子视图控制器呈现视图控制器时会发生什么?

由于呈现的视图控制器旨在“接管”交互直到它被解除,所以对我来说,将呈现请求转发给它的父级(或者实际上,沿着 parentViewControllers 链向上直到它到达视图控制器是有意义的) no parentViewController),然后从该视图控制器显示。否则,似乎开发人员可以做一些事情,比如从两个不同的孩子呈现模态视图控制器等,这在我看来是有问题的。(例如,哪个呈现的视图控制器会优先?)。

此外,如果上述情况属实,它似乎会产生一些影响。如果父视图控制器正在显示一个呈现的视图控制器,这会返回什么?

会是nil因为父母正在显示它吗?或者是否可以将此请求转发给父级,以便它的parentViewController任何一个childViewControllers都具有相同的结果?

无论如何,我已经准备好一个示例项目来开始运行一些场景,但是我很好奇是否有我遗漏的任何文档?或者如果有人已经知道这种交互发生的方式?

0 投票
1 回答
971 浏览

ios - Set nil to child view controllers in viewDidUnload

My iOS app is navigation-based with the following structure:

viewControllerB and viewControllerC get instantiated before ViewControllerA's navigationController pushes them.

In my understanding, everything that is retained in ViewControllerA should be set to nil in ViewControllerA's viewDidUnload. Should I do the same to child view controllers? Like this:

I found an issue when there was "received memory warning" initiated from viewControllerC. Afterward, viewDidUnload of the parent view controller (i.e. viewControllerA) was called, thereby setting nil to 'viewControllerB'. Unexpectedly, viewDidUnload of viewControllerB is also called. So I got "message sent to deallocated object" if I set nil to viewControllerB's subviews (in viewControllerB's viewDidUnload).

Does it mean that I should not set nil to child view controllers? What is the best practice for memory management in this situation?

P.S. I use ARC.

0 投票
1 回答
121 浏览

ios - The uiviewcontroller child of a uiviewcontroller not reacting to touches

I have a UIViewcontroller that have several views and one uiviewcontroller as childs. The uiviewcontroller include a tableview. The child uiviewcontroller has the delegate and datasource methods.

I can see the tableview, the delegate build right the table, but I cant scroll or select the cells because the child uiviewcontroller don't react to touches.

0 投票
1 回答
8888 浏览

ios - 设置作为子视图控制器添加的导航控制器的框架

我试图添加一个UINavigationController作为子视图控制器,然后给它一个比它的父级更小的框架。但是,更改导航控制器的框架并不能正确更改导航控制器的根视图控制器的框架。

viewDidLoad

然后,在viewWillAppear:

虽然导航栏放置正确,但根视图控制器的白色背景却没有。我到底在做什么错?谢谢你的帮助。 在此处输入图像描述

0 投票
1 回答
920 浏览

uiscrollview - 滚动视图中启用用户交互的子视图

我有一个包含 ContainerView 的 ScrollView。ContainerView 包含另一个用户应该能够平移的视图。

scrollView 仅垂直滚动,“containerView 内的视图”可向各个方向平移。这是我所拥有的

发生的情况是模型控制器视图内的触摸事件和模型控制器视图之外但在滚动视图边界内的触摸事件似乎正在相互影响。我玩过

但还没有找到可行的解决方案。

有任何想法吗 ?

提前致谢

0 投票
1 回答
478 浏览

objective-c - 通过 addChildViewController 添加 UISplitViewController

我有一个 UIViewController,其中另一个 viewcontroller(1) 和 splitviewcontroller(2) 通过 addchildviewcontroller 方法进行切换。因此,当我添加 splitviewcontroller 时,它无法处理正确的旋转。看视频——https://dl.dropbox.com/u/2139277/IMG_0180.MOV

这是进行切换的代码:

0 投票
2 回答
2520 浏览

objective-c - UIScrollView 子视图容器错误地更改帧

我遇到了 ChildViewController 视图的问题,他们的框架自动更改为他们父母的框架。我已经将它提炼成一个带有单个类的示例项目来说明正在发生的事情。

简而言之,我:

  • 有一个 ScrollViewController
  • 添加 ScrollViewController 作为 RootViewController 并添加到 Window
  • 在 ScrollViewController - 在ViewDidLoad我创建一个带有 {{0, 0}, {72704, 768}} 框架的 Container UIView
  • 创建一个框架为 {{0, 0}, {1024, 768}} 的 UIScrollView
  • 将 ScrollView 添加到 ScrollViewController 视图
  • 将容器添加到 ScrollView
  • 创建 71 个 UIViewControllers,框架为 {{0, 0}, {1024, 768}}
  • 将它们添加为 ScrollViewController 的 ChildViewControllers
  • 将他们的子视图添加到容器中
  • 在ViewDidAppear上记录所有 71 帧
  • 每帧都是 {{0, 0}, {72704, 768}} - 不是我设置的 1024 x 768。

所有自动调整掩码/自动调整子视图设置为 NO。

这在 iOS 6 上运行,但也发生在 iOS 5.1 上!

更新! 似乎 addChildViewController 是罪魁祸首。不知道为什么 - 这是预期的行为吗?我需要能够将这些 childViewControllers 添加到 ScrollViewController 而他们的视图框架不会自动缩放到他们父母的。这不是理论上的方法吗?

另外 - 任何地方都没有NIB。在 Scrollview / ContainerView 和 71 个 VC 视图中将“translatesAutoresizingMaskIntoConstraints”设置为 NO。不幸的是,同样的事情。这似乎是非常奇怪的行为......

链接到项目 - https://dl.dropbox.com/u/637000/TestingBug.zip

来自 ScrollViewController 的代码:

0 投票
1 回答
7269 浏览

ios - AutoLayout 和 ChildViewControllers 的问题(ChildVCs 视图的大小不正确)

我在做一件相当简单的事情时遇到了一些困难,我错过了一些东西,但看不到......

我用一个非常简单的应用程序(使用 IB)重现了这个问题:

  • App 的主 ViewController 是一个 UINavigationController。
  • NavigationController 的根是“FirstViewController”。
  • FirstViewController 和 SecondViewController 是空的 UIViewController 子类。
    • 它们的 XIB 文件在创建类时由 XCode 生成,启用了 AutoLayout。
    • 我将标签放在 SecondViewController 的顶部和底部(垂直空间约束 = 0)。

使用 ChildViewController

问题是如果我通过“ChildViewControllers”方法显示 SecondViewController,它在我的 iPhone4 上会出错:我看不到底部标签。

使用导航控制器

如果我通过 NavigationController 显示“SecondViewController”,一切正常,SecondViewController 显示正常。

此外,一旦通过 NavigationController 显示 SecondViewController 一次,它就会一直很好地显示出来。

我肯定错过了什么,但是什么?:p 你有什么想法吗?

我在 dropbox 上上传了简单的项目:https ://dl.dropbox.com/u/36803737/sharebox/AutoLayoutTest.zip

谢谢!

朱利安

0 投票
3 回答
9888 浏览

ios - 可可:无法删除子视图控制器

我加载我的主视图控制器的视图。这个主视图控制器然后添加 2 个子视图控制器(拆分视图:主视图和细节)。当我在 init 方法中添加子 VC 后立即记录它们的数量时,我得到“2”作为输出。然后当我调用 -switchToCommunication 方法并尝试删除详细子 VC 时,视图不会改变。但日志告诉我,该阵列实际上已从 2 个子 VC 缩减为 1 个。

怎么了?

0 投票
2 回答
640 浏览

ios - iOS 访问 parentViewController 以更改 UIButton 的状态 setSelected:YES

我在 MainViewController 中有一个 UIButton。
MainViewController 有一个 childViewContoller。

我需要从 childViewController 访问 MainViewController 中的 UIButton (tcButton) 属性,并在 viewDidLoad 中将其设置为 setSelected:YES。我的 ChildViewController.m 文件中有以下代码,但它不起作用。