• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何根据应用程序中的某些情况以编程方式更改 UITabBarItems 的位置

[复制链接]
菜鸟教程小白 发表于 2022-12-12 16:18:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的 UITabBar 中有 3 个项目,我的应用程序运行 2 种语言(英语和阿拉伯语)。当应用程序切换到阿拉伯语时,我需要更改项目的位置,因为需要从右到左阅读 TabBar Items

即。名为“One Way”的选项卡必须出现在右侧,Multi City 必须出现在左侧。有没有办法做到这一点?

我试过这个方法,但不允许

 UITabBarItem *realItemOne=[self.tabBar.items objectAtIndex:0];
    UITabBarItem *realItemTwo=[self.tabBar.items objectAtIndex:1];
    UITabBarItem *realItemThree=[self.tabBar.items objectAtIndex:2];

    if (_isEnglish) {
        self.tabBar.items=[[NSArray alloc] initWithObjects:realItemOne,realItemTwo,realItemThree, nil];
    }
    else{
        self.tabBar.items=[[NSArray alloc] initWithObjects:realItemThree,realItemTwo,realItemOne, nil];
    }

也试过了

self.tabBar.items=[[self.tabBar.items reverseObjectEnumerator] allObjects];

我尝试的另一种方法

UIViewController *viewControllerOne=[self.tabBarController.viewControllers objectAtIndex:0];
    UIViewController *viewControllerTwo=[self.tabBarController.viewControllers objectAtIndex:1];
    UIViewController *viewControllerThree=[self.tabBarController.viewControllers objectAtIndex:2];
    if (_isEnglish) {
        NSArray *englishOrder=[[NSArray alloc] initWithObjects:viewControllerOne,viewControllerTwo,viewControllerThree, nil];
        [self.tabBarController setViewControllers:englishOrder];
    }
    else{
        NSArray *arabicOrder=[[NSArray alloc] initWithObjects:viewControllerThree,viewControllerTwo,viewControllerOne, nil];
        [self.tabBarController setViewControllers:arabicOrder];
    }



Best Answer-推荐答案


不要更改项目,只更改选项卡项的文本和图像。

if (_isEnglish) { change just image and text on 0. and 2. tab } else { also just change image and text }

当用户点击项目时,您检查语言,然后执行适当的方法。如果用户点击 0. 元素并且语言是英语,则调用 oneWay 方法,如果语言是阿拉伯语,则调用 multiCity

我希望这会有所帮助。

关于ios - 如何根据应用程序中的某些情况以编程方式更改 UITabBarItems 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32736499/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap