gpt4 book ai didi

ios - UINavigationController popToViewController 问题

转载 作者:可可西里 更新时间:2023-11-01 03:41:59 24 4
gpt4 key购买 nike

我正在使用 UINavigationController 来处理 Controller 导航

在正常情况下

注册 View ->登录 View ->主页 View

在 HomeView 和任何其他下一个 Controller 中,会打开一个名为“设置”的屏幕,其中有注销按钮。在正常情况下,单击此按钮屏幕将弹出到 LoginView。

- (IBAction)btnLogoutSelected:(id)sender
{
NSArray *navArr=self.navigationController.viewControllers;
for (UIViewController *nav in navArr)
{
if ([nav isKindOfClass:[LoginViewController class]])
{
[self.navigationController popToViewController:nav animated:YES];
}
}
}

一旦用户注册并且如果用户登录一次,这里的应用程序具有自动登录功能。所以那个时候LoginView不会在Navigation的计数中。所以在这种情况下,上面的代码不起作用。所以那时我不能去登录 View 。我需要帮助来解决这个问题。提前致谢

最佳答案

如果导航堆栈上没有 LoginViewController 的实例,只需创建它:

    LoginViewController* loginController = [[LoginViewController alloc] init]; //use appropriate initWith... method

然后你可以使用 UINavigationController 的 viewControllers 属性。您可以用 loginController 替换当前 View Controller ,或者在给定索引处插入 loginController 并弹出它。

NSMutableArray* newViewControllers = [self.navigationController.viewControllers mutableCopy];
[newViewControllers replaceObjectAtIndex:[newViewControllers indexOfObject:self] withObject:loginController];
[self.navigationController setViewControllers:newViewControllers animated:YES];

关于ios - UINavigationController popToViewController 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17229769/

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