在UINavigationController中创建UIViewControllers之间的父/子关系?

问题描述:

我有点不确定我们应该/必须在我们的UIViewController对象之间建立亲子关系的时间和原因。考虑一个类似Twitter的应用程序,其中包含4个部分的标签栏。我们假设每个节根UIViewController(4之中)是父容器的子节点,并且该节中的每个子节点都是其节视图控制器的子节点。这很有道理。在UINavigationController中创建UIViewControllers之间的父/子关系?

但是在Twitter中,例如,每个部分可能有自己的UINavigationController,因此,它自己的独立导航堆栈。因此,可能存在这样一种情况,即用户在两个单独的部分中同时查看相同的确切推文。在那些情况下,推文是两个不同的孩子与两个不同的父母吗?

苹果:

一个UINavigationController对象通过 分层数据集支持导航。导航界面一次显示一个子视图控制器。

这是否意味着UINavigationController推视图控制器时到其堆栈还是应该当一个新的视图控制器推这个做手工创建自己的亲子关系?并且,在Twitter示例中,考虑到可能的重叠,在UINavigationController堆栈中有多大的亲子关系?

如果有人能指向我的文章/视频/等关于iOS中的亲子关系,他们的意义,陷阱,做什么和不该做什么,我真的很感激它,因为我找不到任何我。

+0

我认为你的问题是一个灰色的区域,是脱离主题,属于要求教程的类别,其余的问题可能已经或可能没有得到答案。我不确定但是,我回答了你的问题,你应该避免将来出现这样的问题,而是提出一个问题,你曾经尝试过什么,失败等等。 – 2017-09-02 16:37:33

+0

恭敬地说,SO不仅仅是为了明确的问题,或者是当事情失败时。对于那些提出广泛概念的具体问题的人来说,我非常好,尤其是那些文献稀少的重要问题,因为他们通常比具有精确特异性的问题更具实用性。恕我直言,要求开发人员把时间用于做事,直到他们休息时通常应该避免。不过,我感谢你的回答! – sconewolf

+0

我同意你的观点,正如我所说的,我不确定,因为你在同一篇文章中特别提出了几个问题,我认为这可能是有效的,这就是我回答的原因。但是,向第三方网站和指南寻求指导属于“主题外”类别,即使它能帮助人们如您所说的那样,链接和第三方网站也不能保证始终工作并保持正常运行,并且答案/解决方案应该在SO上显示。这就是为什么我回答解决方案,并在我的答案中包含链接,但我的答案仍然可以理解和有效,没有链接:) – 2017-09-02 17:24:43

“这是推文,在这些情况下,两个独立的孩子,以两个不同的父母?”两个 。

这取决于你的意思是“Tweet”。 “Tweet”可以是相同的对象,两个不同的对象具有相同的视觉内容。两者都是可能的,并且没有“最佳实践”,完全取决于您的使用案例以及您想实现的目标。

如果一个对象出现在屏幕上,在UITableView中(如在Twitter应用程序中),则不会使UITableView或UIViewController成为对象“parent”。

至于Twitter应用程序(我不是应用程序的用户),我猜这是同一个对象,在两个不同的地方展示。

这怎么可能? Core Data< -这实际上是解决您的问题的方法。

这是否意味着UINavigationController的产生推视图控制器,当自己的 亲子关系到其 堆栈

是 -

中的viewController参数的对象成为导航堆栈上的顶视图控制器。推动视图控制器会将其视图嵌入到导航界面中。如果动画参数为YES,则将视图动画到位;否则,视图只显示在其最终位置。 除了在堆栈顶部显示与新视图控制器关联的视图之外,此方法还相应地更新了导航栏和工具栏。有关导航栏如何更新的信息,请参阅更新导航栏。取自

引用:Apple documentations

或应此必须手动完成时一个新的视图控制器是

推?

没有

而且,在Twitter的例子,多么有必要的是它有一个UINavigationController堆栈 父子关系给予 可能的重叠?

阅读关于MVC structure,并停止混合UIViewControllers-Navigationcontrollers与你想要显示在UI中的对象和内容。我认为你的问题是你还没有掌握how object oriented language works,或至少如何在iOS中实现它。更新你的对象,也应该更新它在你的应用程序中展示的地方,在每个UIViewController中(正如我所理解的你想要实现的那样)。这是CoreData和NSFetchedResultsController进入图片的地方。

此外,读取的结果的控制器,可选的显示器改变 到在相关联的被管理对象的上下文对象,并报告在设置为它的代表结果 改变(请参阅控制器的 代表)。

也有很多tutorials如果你需要处理this manually没有NSFetchedResultsController的帮助,那也可以做。只要搜索和谷歌将提供。