gpt4 book ai didi

objective-c - 在不调用 presentViewController(或 dismissViewController)的情况下呈现 View Controller

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:10 24 4
gpt4 key购买 nike

我正在构建一个相当复杂的 iPad 应用程序,它将在 iOS7+ 上运行。该应用程序有一个登录屏幕,每个用户 session 都必须访问一次,这是我 Storyboard中的起始 View Controller 。用户可以通过触摸一个按钮从应用程序中的任何其他屏幕(大约有 60 个其他屏幕)注销,该按钮在所有其他 ViewController 中始终可用。当用户注销时,应使用自定义过渡动画。

看来我可以通过以下两种方式之一实现这一点,要么通过从应用程序中的每个屏幕到登录页面的 segue,这使得 Storyboard 无法阅读,要么使用 presentViewController。

我已经用 presentViewController 实现了这个,方法是从 Storyboard 中按 id 查找 View Controller (创建一个新实例,这是一种期望的行为),然后从当前 View Controller 中呈现它。

毫不奇怪,这并没有关闭原始的登录 View Controller ,而是实质上创建了一堆 View Controller ,最终我用完了内存,因为每次用户注销时,都会创建并保留一个新的登录 View Controller 。

有没有办法清除 View Controller 的这个“堆栈”?

有没有不同的方式来呈现 View Controller ,带有动画,不涉及 presentViewController 或 segues?我考虑过 View Controller 包含,但在与 Storyboard一起使用时似乎不太正确。

最佳答案

您是否考虑过更换 Root View Controller ?如果应用程序委托(delegate)观察到注销通知并用 Storyboard的初始内容替换 Root View Controller ,这应该使应用程序返回到初始屏幕。

我已经在网络上的其他地方看到它作为登录/注销问题的解决方案,但我不确定是否有可以在那里制作动画的过渡。

关于objective-c - 在不调用 presentViewController(或 dismissViewController)的情况下呈现 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20145155/

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