切换标签的方法之间的差异

时间:2009-09-24 16:51:41

标签: cocoa-touch uikit uitabbarcontroller selectedindex

这两行代码之间有区别吗?

self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1];

self.tabBarController.selectedIndex = 1;

我的应用程序刚刚在顶级语句中崩溃,因此可能存在一些内存问题。一种方法比另一种方法有什么优势吗?

1 个答案:

答案 0 :(得分:0)

实际上,设置selectedIndex属性将执行与第一个语句类似的操作,但它可能会进行更多检查。当tabBar中有超过5个控制器时会有区别,因此当有“更多”选项卡时。这就是文档告诉我们的内容:

  

- selectedIndex

     

此属性名义上表示viewControllers属性数组的索引。但是,如果所选视图控制器当前是更多导航控制器,则此属性包含值NSNotFound。设置此属性会将所选视图控制器更改为viewControllers数组中指定索引处的控制器。要选择更多导航控制器本身,您必须改为更改selectedViewController属性的值。

     

在3.0版之前的iPhone OS版本中,此属性仅反映所选标签栏项的索引。尝试将此值设置为在选项卡栏中不可见但由更多导航控制器管理的视图控制器的索引无效。