gpt4 book ai didi

iOS:popToRootViewControllerAnimated 后跟 performSegue 不起作用

转载 作者:行者123 更新时间:2023-11-29 12:51:56 27 4
gpt4 key购买 nike

在我的非根 VC 类中,我有以下 doLogout 方法:

- (void)doLogout
{
SDPAppDelegate *app = [self getAppDelegate];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[SSKeychain deletePasswordForService:app.productName account:[defaults stringForKey:@"EmailAddress"]];
[defaults removeObjectForKey:@"LoggedIn"];
[defaults removeObjectForKey:@"EmailAddress"];
[defaults removeObjectForKey:@"Password"];

[defaults synchronize];

[self setToolbarItems:nil];
[self.navigationController popToRootViewControllerAnimated:YES];
}

然后在我的根 VC 中,在 viewWillAppear 中,我有:

- (void)viewWillAppear:(BOOL)animated
{
if (![self isLoggedIn]) {
NSLog(@"Should perform segue bro");
[self performSegueWithIdentifier:@"loginSegue" sender:self];
}
}
}

这主要是有效的,用户被注销并且堆栈被正确地恢复到根 Controller ,并且执行了 NSLog() 调用,但是 segue 没有。为什么会这样,可以做什么?如果用户注销,我想显示登录 VC(弹出到根 VC)。

最佳答案

尝试将此代码添加到 ViewDidAppear,而不是 viewWillAppear

- (void)viewDidAppear:(BOOL)animated
{
if (![self isLoggedIn]) {
NSLog(@"Should perform segue bro");
[self performSegueWithIdentifier:@"loginSegue" sender:self];
}
}
}

关于iOS:popToRootViewControllerAnimated 后跟 performSegue 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238799/

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