2010-04-09 86 views

回答

6

有几个Apple应用程序使用分段控件来更改视图:iTunes,App Store应用程序和YouTube应用程序。但是,他们都在屏幕的顶部使用它,并与分段控件结合使用。地图应用在屏幕底部使用一个,但是这个想法与标签栏不同。日历应用程序也使用一个,列表,日和月视图(在底部的工具栏中)。

我认为经验法则是,如果您提供的是同一种数据的不同视图,则可以使用分段控件。如果您显示的内容不相关,则应使用标签栏。您可能不会因为使用分段控件而拒绝应用程序,但如果以非标准方式使用它,用户会有点困惑。

我不确定示例代码,我能看到的最接近的是“Top Songs”示例。这不会交换视图,只是在点击细分时更改FetchedResultsController

这里的另一个问题上,这样几乎是相同的:

How do I use a UISegmentedControl to switch views?

1

这是我做的:

-(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; 
} 
} 

确保您绑定的分段控制在的valueChanged方法IB到这个IBAction。

+0

好的解决方案,但这并不能很好地扩展 - 有没有更优雅的方式? – fatuhoku 2014-03-12 10:10:31

+0

您可以简单地在数组中的切换视图与分段控件的选定索引之间创建关联。然后使用分段视图方法可以控制视图的切换。 – dmcqu314 2015-05-20 05:04:49

相关问题