我想使用分段控件而不是 UITabBar 控制器来更改视图。这符合HIG吗?
如果是,我该怎么做?我应该为我的项目使用什么模板以及什么代码?
我想使用分段控件而不是 UITabBar 控制器来更改视图。这符合HIG吗?
如果是,我该怎么做?我应该为我的项目使用什么模板以及什么代码?
有几个 Apple 应用程序使用分段控件来更改视图:iTunes、App Store 应用程序和 YouTube 应用程序。但是,它们都在屏幕顶部使用它,并与分段控件结合使用。地图应用程序在屏幕底部使用了一个,但这个想法与标签栏不同。日历应用程序也使用一个,用于列表、日和月视图(在底部的工具栏中)。
我认为经验法则是,如果您提供相同类型数据的不同视图,则可以使用分段控件。如果您显示的内容不相关,则应使用标签栏。您可能不会因为使用分段控件而拒绝应用程序,但如果您以非标准方式使用它,用户会有点困惑。
我不确定示例代码,我能看到的最接近的是“热门歌曲”示例。这不会交换视图,它只会更改FetchedResultsController
单击片段的时间。
这是关于 SO 的另一个问题,几乎相同:
我是这样做的:
-(IBAction)segmentedControlIndexChanged{
switch (self.segmentedControl1.selectedSegmentIndex) {
case 0:
[details1 removeFromSuperview];
[details2 removeFromSuperview];
[details3 removeFromSuperview];
[details addSubview:details0];
break;
case 1:
[details2 removeFromSuperview];
[details0 removeFromSuperview];
[details3 removeFromSuperview];
[details addSubview:details1];
break;
case 2:
[details0 removeFromSuperview];
[details1 removeFromSuperview];
[details3 removeFromSuperview];
[details addSubview:details2];
break;
case 3:
[details0 removeFromSuperview];
[details1 removeFromSuperview];
[details2 removeFromSuperview];
[details addSubview:details3];
break;
default:
break;
}
}
确保将 IB 中分段控件的 valueChanged 方法绑定到此 IBAction。