0

在我的项目中,我使用一些代码来处理后退按钮,如下所示。

NSMutableArray *VCs = [NSMutableArray arrayWithArray: self.navigationController.viewControllers];
if ([[VCs objectAtIndex:[VCs count] - 2] isKindOfClass:[LoginViewController class]])
{
    [VCs removeObjectAtIndex:[VCs count] - 2];
    [VCs removeObjectAtIndex:[VCs count] - 2];
}
[self.navigationController setViewControllers: VCs];

在 iOS 7 中,我得到了想要的结果。但是对于 iOS 8.2 版本,可变数组 VCs 中的值只是堆栈中的 current 或 topViewController。

我想从堆栈中删除登录屏幕视图控制器,以便在单击后退按钮时,它不会返回登录屏幕。我仅在 iOS 8.2 中遇到此问题(可能在 iOS 8 及更高版本中)。可能是什么问题?请帮忙。

4

1 回答 1

1

是的,我无法正确回答您的观点。
但是当我查看您的代码时,我发现您想在导航堆栈中关闭一些登录视图控制器。
我的建议是:不要以这种方式显示登录 ViewController,它就像某种 hack 代码,不方便扩展或修改登录工作流。好的选择是将所有登录 ViewControllers 放在另一个导航中,在一个登录周期中工作。您可以按当前显示导航。
真的很方便!

于 2015-11-13T11:45:16.043 回答