gpt4 book ai didi

ios - 注销 ios 应用程序并返回到 RootViewController

转载 作者:行者123 更新时间:2023-11-29 02:31:19 25 4
gpt4 key购买 nike

我在我的应用委托(delegate)中创建了一个 RootViewController,如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

StartViewController *viewController = [[StartViewController alloc] init];
StartNavigationController *navigationController=[[StartNavigationController alloc] initWithRootViewController:viewController];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
}

当我点击注销按钮时,我想将用户发送回 Root View Controller :

- (IBAction) logoutButtonPressed:(UIButton *)sender
{
[Users logOut];

[self.navigationController popToRootViewControllerAnimated:YES];
}

当我在我的 iPhone 4s 上运行它时它工作正常(在它到达时测试 iphone 6),但是如果我让用户登录超过一天并单击注销按钮,屏幕会滑到黑色。

为什么我的 Root View Controller 在大约 24 小时后没有调用我的 startviewcontroller?

最佳答案

我正在尝试给出答案,我想它应该对你有用。首先,检查 StartViewController 是否存在于 navigationController 堆栈中。根据您的堆栈,StartViewController 应该是在 navigationController 中添加的第一个 Controller 。

StartViewController *loginController=[self.navigationController.viewControllers objectAtIndex:0];


if(loginController){
[self.navigationController popToViewController:loginController animated:YES];
}else{
NSMutableArray *controllers=[[NSMutableArray alloc] init];

loginController=[[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil];
[controllers addObject:loginController];
[controllers addObjectsFromArray:self.navigationController.viewControllers];
self.navigationController.viewControllers=[[NSArray alloc] initWithArray:controllers];
[self.navigationController popToRootViewControllerAnimated:YES];
}

我认为它应该有效。

干杯。

关于ios - 注销 ios 应用程序并返回到 RootViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838951/

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