这两行代码有区别吗?
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1];
和
self.tabBarController.selectedIndex = 1;
我的应用程序刚刚在顶部语句中崩溃,因此它可能存在一些内存问题。一种方法比另一种方法有什么优势吗?
这两行代码有区别吗?
self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:1];
和
self.tabBarController.selectedIndex = 1;
我的应用程序刚刚在顶部语句中崩溃,因此它可能存在一些内存问题。一种方法比另一种方法有什么优势吗?
实际上,设置 selectedIndex 属性将执行与您的第一个语句类似的操作,但它可能会进行更多检查。当您的 tabBar 中有超过 5 个控制器时,会有差异,所以当有一个“更多”选项卡时。这是文档告诉我们的:
-选定索引
此属性名义上表示 viewControllers 属性数组的索引。但是,如果所选视图控制器当前是更多导航控制器,则此属性包含值 NSNotFound。设置此属性会将选定的视图控制器更改为 viewControllers 数组中指定索引处的视图控制器。要选择更多导航控制器本身,您必须改为更改 selectedViewController 属性的值。
在 3.0 之前的 iPhone OS 版本中,此属性仅反映所选标签栏项目的索引。尝试将此值设置为在选项卡栏中不可见但由更多导航控制器管理的视图控制器的索引没有效果。