【问题标题】:reset all tabs when logged out iphone注销iphone时重置所有标签
【发布时间】:2011-08-19 09:07:11
【问题描述】:

我正在开发一个使用登录名对用户进行身份验证的项目。当我注销时,用户回到登录页面。我遇到的问题是,当用户注销并再次登录时,用户显示在他注销的同一选项卡中,并且数据仍被存储。

我构建了一个选项卡应用程序,在第一个选项卡中我使用模块化视图显示登录,并且在每个选项卡中当我调用注销时使用模块化视图显示登录。所以它只是一个标签栏应用程序,其中登录是模块化的。

谁能告诉我如何解决这个问题还是我有任何结构缺陷?非常感谢您抽出宝贵的时间来了解这一点。

谢谢

【问题讨论】:

  • 不,除非你提供一些代码。
  • 我添加了更多信息。如果您需要代码,请告诉我。
  • 你能告诉我你需要哪部分代码吗?
  • 我认为您可能需要对其进行结构化,以便您的模态视图控制器是选项卡式应用程序界面,当您注销时,它会被关闭并且用户返回到根视图控制器(登录屏幕),不是相反。

标签: iphone ios


【解决方案1】:

呈现模态视图的行为在呈现后永远不会清除底层视图数据(这将是完全奇怪的)。

因此,您必须在注销时手动清理视图 - 通过在视图控制器上实现重置方法来清除视图中显示的信息以及您在注销处理期间调用的信息(即清除文本字段、列表等)。 ),或者通过(在注销时)释放单个视图控制器或整个选项卡视图控制器并在登录时重新创建它。

【讨论】:

  • 我其实想在视图控制器中实现登录,然后加载一个标签栏控制器。我不知道该怎么做所以我就这样开始了。我的项目处于婴儿阶段。您能否就如何进行或哪些更改有助于以正确的方式实施给我一些建议。
  • 这两种方法都被使用了——我更喜欢不使用模式视图控制器但让登录的呈现成为应用程序状态的功能的方法。您可以通过从主应用程序窗口中删除视图控制器视图并将另一个视图添加到应用程序窗口来更改根视图控制器(您可以在应用程序委托中执行此操作)。
【解决方案2】:

在不了解视图的结构的情况下,我建议您需要在用户选择注销时弹出并释放包含信息的视图控制器。

我认为有一个调用会在初始登录后创建视图?释放它会刷新视图中捕获的数据,并且将由现有代码创建一个新视图。

如果该答案对您没有任何帮助,请编辑您的问题并添加有关您的视图结构外观的详细信息。

【讨论】:

  • 你能告诉我你需要哪部分代码吗?我的意思是应用程序委托或每个视图控制器或其他任何东西。我构建了一个选项卡应用程序,在第一个选项卡中我使用模块化视图呈现登录,并且在每个选项卡中当我调用注销时使用模块化视图呈现登录。所以它只是一个标签栏应用程序,其中登录是模块化的。
  • 由于您将登录视图显示为包含数据的视图中的模态视图,因此我建议的解决方案将不起作用。您需要在登录时添加调用以刷新可见视图中的数据。
【解决方案3】:

您可以在模态显示登录视图之前设置 tabBarController selectedIndex 属性。

[self.tabBarController setSelectedIndex:0]; // first tab is 0

要清除数据,只需在用户注销时执行即可。

【讨论】:

    猜你喜欢
    • 2012-11-10
    • 2017-12-01
    • 2017-06-25
    • 1970-01-01
    • 2019-06-09
    • 2011-06-15
    • 2012-05-03
    • 2015-11-23
    • 1970-01-01
    相关资源
    最近更新 更多