iOS 7 - 呈现模式视图控制器选择 UITabBarController 中的第一个选项卡

Posted

技术标签:

【中文标题】iOS 7 - 呈现模式视图控制器选择 UITabBarController 中的第一个选项卡【英文标题】:iOS 7 - Presenting modal view controller selects first tab in UITabBarController 【发布时间】:2013-09-24 00:21:38 【问题描述】:

我正在使用 Xamarin 为 ios 开发基于 UITabBarController 的应用程序,并且在对 iOS 7.0 兼容性进行了一些相对较小的更改时,我发现了一个我无法解决的特别烦人的问题。

构成 UITabBarController 的许多视图控制器具有需要另一个视图控制器以模态方式呈现的区域,从屏幕底部向上滑动。在 iOS 6.1 中,一切正常。

但是,在 iOS 7 中,我注意到当显示的视图控制器被关闭时,下方的 UITabBarController 已导航回第一个(最左侧)选项卡。这是非常有问题的,因为输入的任何进度或信息都会丢失。

有没有人遇到过这个问题,或者希望找到解决方案?

【问题讨论】:

我在 iOS 7 中尝试过,但我看不到您所看到的内容——它回到了显示它的标签页。 【参考方案1】:

尴尬的是,我发现了问题的原因。为了解决这个问题:UITabBar appearance setSelectionIndicatorImage does not work on first launch iOS7

我在我的 UITabBarController 的 ViewWillAppear 重写方法中运行了这段代码:

if ( Session.IsiOS7 )

    this.SelectedIndex = 1;
    this.SelectedIndex = 0;

这是用来强制标签栏显示选择指示器图像,在iOS 7中默认不这样做。它也恰好导致了这个问题!我不敢相信我没有马上想到这个。

【讨论】:

以上是关于iOS 7 - 呈现模式视图控制器选择 UITabBarController 中的第一个选项卡的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 9 中呈现透明模式视图

从视图控制器呈现导航视图 - IOS 7

如何使用已经呈现的模式视图控制器启动 iOS 应用程序,而用户无法看到呈现视图?

iOS - 在其顶部呈现模式后保留视图控制器状态

呈现和关闭模式视图控制器时如何保持选择集合视图单元格?

如何使用 animateWithDuration:在 iOS 7 上呈现视图控制器时?