gpt4 book ai didi

ios - swift 3 : Get context of a child viewcontroller

转载 作者:行者123 更新时间:2023-11-28 08:04:21 25 4
gpt4 key购买 nike

我有 ChildViewController,它继承自 ParentViewController,如下所示:class ChildViewController: ParentViewController。在 ParentViewController 中,我尝试执行以下代码片段:

let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "anotherViewController") 
self.present(controller, animated: true, completion: nil)

我假设它不起作用,因为它是 ParentViewController 并且 child 在实际屏幕上可见。是否有可能获取 ChildViewController 的上下文(自身)以使代码片段正常工作?

感谢大家的帮助。

最佳答案

如果我现在理解你的问题(那里有一个很大的 IF),你就没有理解继承和你的“上下文”。

如果您有 2 个类,如您所说,ParentViewControllerChildViewController,其中 ChildViewControllerParentViewController 的子类。你在 ParentViewController 中有一个方法,你假设它没有 ChildViewController 的访问/上下文,尽管实例本身是一个 ChildViewController ...你的假设这里是错误的!

您的 ChildViewController 将继承其父类(super class) ParentViewController 的所有方法,并且所有这些方法都将具有对 ChildViewController 的自引用,而不是到 ParentViewController。这意味着如果你有方法 A 和方法 B 然后覆盖 subview Controller 中的方法 B 。当父 View Controller 在方法 A 中调用方法 B 时,将调用覆盖的方法。这意味着尽管 A 方法在父 View Controller 中被调用,方法 B 将在 subview Controller 中被调用。因此,获取“ child ”的上下文永远不会有问题。问题可能是您可能无法获得作为 parent 的 self 背景。但这是按设计创建的,它应该是这样的。

所以我想回答你的问题;是的,这是可能的,而且实际上已经发生在你身上。如果您在父 View Controller 的方法中放置一个断点并打印 self(在控制台类型“po self”中),您应该看到该类型实际上是 subview Controller 。

您遇到的问题很可能是其他原因造成的。请添加异常断点以查看崩溃发生的位置,并查看控制台中的日志以了解其内容。

关于ios - swift 3 : Get context of a child viewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45586781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com