iOS 提供了一个模态视图控制器,它在之前介绍过

Posted

技术标签:

【中文标题】iOS 提供了一个模态视图控制器,它在之前介绍过【英文标题】:iOS present a modal view controller which is presented before 【发布时间】:2014-02-21 23:35:25 【问题描述】:

我的场景是,当应用启动时,用户需要登录。登录后,我将在其顶部显示一个模态视图控制器B。 (不推送到导航控制器)。

现在用户可以注销并返回初始视图控制器A。我想要完成的是呈现一个全新的初始视图控制器。我试过dismissViewController,但是A会显示之前B的状态,可能是A的一些子视图控制器。

所以我想展示初始控制器而不是关闭当前控制器。

    我认为这可能会导致潜在的内存问题,因为我只是在堆栈顶部放置了一个视图控制器并且它们的重置从未被删除,对吧?

    如果存在内存问题,是否有更好的解决方法? (复杂的方法是使用delegate,注销时手动重置初始视图控制器)

谢谢

【问题讨论】:

您是否使用 webView 进行登录? @BeemerFan 不,我自己的视图控制器 【参考方案1】:

您必须将“视图控制器 B”设置为初始场景(属性检查器上的“是初始视图控制器”),当您的应用程序启动时,您必须以编程方式测试用户是否登录,如果没有,您必须将 Login 视图控制器显示为 Modal 并在登录后将其关闭。

presentViewController:animated:completion(presentModalViewController 在 ios 6.0 中已弃用。)

执行SegueWithIdentifier(如果您使用故事板)。

希望对你有所帮助。

【讨论】:

好主意。谢谢。

以上是关于iOS 提供了一个模态视图控制器,它在之前介绍过的主要内容,如果未能解决你的问题,请参考以下文章

popViewController:animated: 在 iOS 9 中不工作

ios 8 更改呈现/模态视图控制器的大小

应用程序试图以模态方式呈现一个活动控制器 ios

当被模态视图控制器覆盖时,iOS 6 视图控制器布局在方向更改后不会更新

如何在 iOS 中显示小型模态视图控制器?

IOS:在模态视图控制器中清除以前的内容