告诉 UITabBar 要加载哪个视图

Posted

技术标签:

【中文标题】告诉 UITabBar 要加载哪个视图【英文标题】:Tell UITabBar which view to load 【发布时间】:2011-04-15 12:03:18 【问题描述】:

有没有办法在触摸 UITabBar 按钮时根据某些状态加载视图? 例如,我触摸“主页”按钮 View1 加载。比我做一些代码,当我再次触摸“主页”按钮时,View2 加载。

【问题讨论】:

【参考方案1】:

可以做到...假设我们在内存中有两个视图 myView1 & myView2..

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

     if(OnPressHomeTabBarButton) // Put your condition at this place  
     
        [myView1 removeFromSuperview];
        [self.view addSubview:myView2];

     
     else 
      
        [myView2 removeFromSuperview];
        [self.view addSubview:myView1];
      

【讨论】:

【参考方案2】:

是的,您可以设置属性viewControllers。

查看文档中的此注释:

如果你改变这个值 运行时的属性,标签栏 控制器删除所有旧视图 安装新的控制器之前 那些。新的标签栏项目 显示视图控制器 立即而不是动画成 位置。改变视图时 控制器,标签栏控制器 记住视图控制器对象 之前选择的和 尝试重新选择它。如果 选定的视图控制器不再 目前,它试图选择 在同一索引处查看控制器 数组作为先前的选择。 如果该索引无效,则选择 索引 0 处的视图控制器。

【讨论】:

以上是关于告诉 UITabBar 要加载哪个视图的主要内容,如果未能解决你的问题,请参考以下文章

在视图已经可见时更改 uitabbar 图标

如果在视图控制器中使用 Tabbar,如何设置主视图控制器

如何以编程方式使用 UITabBar

自动突出显示 UITabBar 按钮

选择 UITableViewCell 时 UITabBar 消失

iOS:在 UITabBar/UINavigationController 应用程序的视图中设置 nib 子视图中的文本