在iOS中为应用演示只显示一次UIView



我需要显示一个UIScrollView与一些页面呈现应用程序的用户时,首次启动。我的幻灯片工作正常,留下了逻辑来展示它。设置UIScrollViewController作为根控制器和设置一个NSUserDefault变量来控制演示和重定向到主控制器或设置主ViewController作为根通常和调用演示视图,如果需要是一个更好的方法是一个很好的做法?如果有更好的方法,有人能帮忙吗?谢谢。

您的应用程序的默认行为是不显示介绍幻灯片。它们只在您第一次启动它时显示。

要决定放映这些幻灯片,你要问这个问题

是第一次启动应用程序吗?

这个问题应该放在哪里?

如果你把它放在你的导入视图控制器中,你将无法从应用程序中其他地方的按钮(如按钮tutorial或其他东西)呈现它。通过将表示逻辑置于视图控制器之外,你只留下管理其内容的责任,并获得更好的关注点分离。

反例

如果你有一个登录视图控制器,它负责登录用户。考虑这个行为的一种方式是用户登录一次,然后我想每次都跳过这个视图控制器,因此呈现它的逻辑应该属于另一个视图控制器。但在这种情况下,登录可能会对应用程序的其余部分产生影响(例如设置网络库的Authorization头)。在这种情况下,我会将其设置为应用程序的第一个视图控制器,但如果我们在用户默认值中存储了auth-token,则跳过UI,因此遵循您提出的前一个建议。此外,在导航控制器的上下文中,将此视图控制器作为根是有意义的,因为如果您的用户需要注销(或会话令牌过期),您将很容易能够popToRootViewController

我建议将您的主视图设置为默认值,因为99.99%的情况下这是将要使用的。使用NSUserDefault设置一个bool,如果这个显示,可能是didshowfirstrn。然后在你的主控制器中,检查NSUserDefault的值并显示它是nil还是false。

在应用程序didFinishLaunchingWithOptions中的AppDelegate中,你可以检查didshowfirstrn是否为nil,并将默认值设置为NO。

不要围绕应用程序工作流的异常进行设计,显示第一次运行将是例外。

我有一个应用程序,在登录视图显示后,它检查第一次运行并显示开始屏幕,然后在完成后,设置NSUserDefault var,我完成了。

最新更新