gpt4 book ai didi

ios - 在 segue 到子 uiviewcontroller ios 之后关闭自己的 uiviewcontroller?

转载 作者:行者123 更新时间:2023-11-28 19:53:09 25 4
gpt4 key购买 nike

我在导航 Controller 中有三个 UIViewController(我们称它们为 A、B 和 C)。 A 可以进入 B 或 C。B 可以进入 C。当 C 关闭时,我希望它始终返回到 A,即如果从 B 打开,它会在关闭 C 时自动关闭 B。

现在,我尝试使用 segue 展开,这样当 C 关闭时,B 的 return 方法被调用以关闭目标 Controller :

- (IBAction)returnFromC:(UIStoryboardSegue*)segue
{
[segue.destinationViewController dismissViewControllerAnimated:YES completion:nil];
}

我在这个方法中放置了一个断点 - 它被调用了。我已验证 destinationController 确实是 B。但是,我注意到当断点命中时,C 仍然可见。从断点开始播放后,C 确实按预期退出,但 B 仍然可见。

有什么想法吗?提前谢谢了。

最佳答案

When C closes, I want it to always return to A, i.e. it automatically closes B upon closing C, if opened from B

最简单的解决方案是:在 C 的 viewDidAppear: 中,偷偷将 B 作为导航 Controller 的子项移除。换句话说,你得到了这个:

A > B > C

现在你重新安排事情,这样你就得到了这个:

A > C

因此,唯一可以从 C 返回的是 A。

以这种方式操作导航 Controller 的子集很容易。只需调用 setViewControllers:animated:(第二个参数为 NO)。

[但如果我正确理解了您的设置,另一种简单的方法是在 A 而不是 B 中实现展开方法。然后执行展开转场。我们总是展开到第一个包含 unwind 方法的 View Controller ,所以它总是 A。]

关于ios - 在 segue 到子 uiviewcontroller ios 之后关闭自己的 uiviewcontroller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102368/

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