选项卡切换方法的区别

发布于 2024-08-05 15:31:40 字数 281 浏览 9 评论 0原文

这两行代码有区别吗?

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

我的

self.tabBarController.selectedIndex = 1;

应用程序刚刚在顶部语句上崩溃,因此可能存在一些内存问题。一种方法相对于另一种方法有什么优点吗?

Is there a difference between these two lines of code?

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

and

self.tabBarController.selectedIndex = 1;

My app just crashed on the top statement so it might have some memory issues. Are there any advantages of one method over the other?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黯淡〆 2024-08-12 15:31:40

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

-选定索引

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

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

Actually, setting the selectedIndex property will do something similar as in your first statement, but it will probably do some more checking. There will be a difference when there are more than 5 controllers in your tabBar, so when there is a 'More' tab. This is what the documentation tells us:

- selectedIndex

This property nominally represents an index into the array of the viewControllers property. However, if the selected view controller is currently the More navigation controller, this property contains the value NSNotFound. Setting this property changes the selected view controller to the one at the designated index in the viewControllers array. To select the More navigation controller itself, you must change the value of the selectedViewController property instead.

In versions of iPhone OS prior to version 3.0, this property reflects the index of the selected tab bar item only. Attempting to set this value to an index of a view controller that is not visible in the tab bar, but is instead managed by the More navigation controller, has no effect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文