gpt4 book ai didi

objective-c - 从另一个 modalViewController 解雇ModalViewController

转载 作者:行者123 更新时间:2023-12-01 18:27:20 25 4
gpt4 key购买 nike

所以我有一个 viewController A,它呈现一个模态 viewController B。

然后 B 呈现一个 viewController C。

我想要做的是解雇 viewController B,因为我不再需要它了。有没有一种简单的方法可以解除 B 并将 C 作为 A 的 child 留在屏幕上?

最佳答案

显然,正如许多人所说,在教科书世界中,这将/应该是代表情况。在哪里 A礼物 BB礼物 C .那么当C完成它告诉B驳回 C然后 B告诉 A解雇B .

我认为您实际上是在创建一组模态呈现的 View Controller ,相当于一个导航堆栈。我可能会这样实现它。在哪里 A将是 Root View Controller 。 A然后会推 B到堆栈和B会推C到堆栈上。当C完成它可以简单地popToRootViewControllerAnimated:popToViewController:A animated:YES如果 A不是rootViewController。

同时删除 BC 的下方出来似乎有问题。但根据您的评论,这听起来并不是一成不变的:

But anyway its not a the end of the world if I keep that viewController there for a while. –



这至少可以实现相当干净的委托(delegate)设置。

似乎您基本上知道当用户完成 C 时他们永远不需要 B再次。如果是这种情况,您可以一次盲目地关闭两个或多个 View Controller 。一次两个的代码相当简单。 (假设 iOS 版本 > 5.0)
[self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];

请注意我说的是盲目的!这段代码是不宽容的,并且会做出假设。例如,最明显的是 View Controller 实际上有一个 presentingViewController并且该 View Controller 具有 presentingViewController .如果不满足这些条件中的任何一个,则此代码将执行 什么都没有 .如果您在任何时候重组您的应用程序,这很容易发生。

再说一遍,如果您选择使用这行代码,请非常小心地使用它。请考虑使用 UINavigationController对于这个 View 层次结构,或者至少是委托(delegate)。

关于objective-c - 从另一个 modalViewController 解雇ModalViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289109/

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