gpt4 book ai didi

iphone - 基于 TabBar 的应用程序中的注销问题

转载 作者:行者123 更新时间:2023-12-01 18:24:03 26 4
gpt4 key购买 nike

这是一个很常见的问题,但是在尝试了很多解决这个问题之后,最后我决定将它发布在 StackOverFlow.com 上

我有一个基于标签栏的应用程序。标签栏在 AppDelegate.m 中加载如下:

  self.tabBarController.viewControllers = @[viewController1, viewController2 , viewController3 , viewController4 , viewController5];

我的第 5 个选项卡有一个注销按钮。当用户单击注销时,我想清除/重置整个应用程序并转到登录页面,这是一个 modalviewcontroller。

我在注销时尝试了以下操作:
 NSMutableArray * vcs = [NSMutableArray
arrayWithArray:[self.tabBarController viewControllers]];
[vcs removeAllObjects ];//ObjectAtIndex:4];
[self.tabBarController setViewControllers:vcs];

这会从标签栏中删除所有 View 。但是当我再次登录时,什么都没有显示。我想显示我的主屏幕,即默认选择选项卡项目 1。

我已经读过再次手动调用 didFinishLaunchingWithOptions 不是一个好习惯。

有没有办法可以重置所有标签栏并重新初始化它们?

这将帮助我解决与这种情况相关的另一个问题。当用户注销并再次登录,并且 View Controller 没有被清除时,登录后再次显示注销页面。而不是主视图 Controller 。

请帮忙。

提前致谢。

最佳答案

如果你真的想重新开始,你应该放一个方法,让我们在应用程序委托(delegate)中调用它 -(void)setupTabBarController,并在启动时从 application:didFinishLaunchingWithOptions: 调用它。稍后当您想要重置时,请从登录页面再次调用该方法。此方法将在其中创建所有标签栏 Controller 的 View Controller ,并将标签栏 Controller 设置为窗口的 Root View Controller 。

但是,您是否需要这样做并不是很清楚,这取决于所有这些 Controller 在注销时处于什么状态。您的注销页面再次显示的问题可能会以更简单的方式解决。

关于iphone - 基于 TabBar 的应用程序中的注销问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15080153/

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