Swift 2.1- tabBarController!.selectedIndex返回一个大整数

3

我需要将 tabBarController!.selectedIndex 的数字放入一个常量中。

我希望得到一个介于0到3之间的数字取决于我选择了哪个选项卡,但实际上我得到的数字是像 2147483647 这样的。

这是为什么呢?有任何想法吗?

代码如下:

let selectedTab = tabBarController!.selectedIndex
print(selectedTab)

1
有没有可能适用于这种情况:“但是,如果所选的视图控制器当前是“更多”导航控制器,则此属性包含值NSNotFound。” - Phillip Mills
不是“更多”选项卡,而是在启动时使用的第一个选项卡。 - jwknz
2个回答

2

该值为NSNotFound。在这种情况下,它似乎表示“未选择”。


抱歉我没有澄清,这适用于启动时显示的选项卡 - 因此不会发生任何切换。因此,在启动时使用的选项卡不会返回数字? - jwknz
1
正如你在回答中提到的那样,你是否在正确的时间提问正是问题所在。 :-) - Joshua Nozzi

2

感谢 Joshua 的答案和 Philip 的评论,让我找到了正确的解决方案。

问题是我把常量放在了我的 viewWillAppear 方法中,这意味着它没有读取我选择的 VC,因为它还没有出现。

NSNotFound 因此被触发,因为视图尚未加载。


如果当前选择的视图控制器是“更多”导航控制器,则selectedIndex包含值NSNotFound。moreNavigationController属性始终包含有效的“更多”导航控制器,即使屏幕上没有显示“更多”按钮。 - user3441734
这很有道理,但我从未说过我针对更多的导航控制器或者它被选中了。 - jwknz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接