【问题标题】:How to handle the back button(iOS 8.2) in iphone如何处理 iPhone 中的后退按钮(iOS 8.2)
【发布时间】:2015-04-04 11:47:11
【问题描述】:

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

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 中的值只是堆栈中的当前或 topViewController。

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

【问题讨论】:

  • 能否请您 NSLog self.navigationController.viewControllers 并更新问题。它将帮助我们以某种方式识别问题。
  • 感谢 jassi 抽出宝贵时间...viewcontroller 数组的内容只有在 os 为 8.2 时才是当前 viewcontroller...如果是 7.2,则所有 viewcontroller 都在堆栈中.我目前没有设备。对不起...知道为什么会这样吗?
  • 你解决过这个问题吗?

标签: ios objective-c iphone back ios8.2


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-07-15
    • 2012-01-27
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多