2010-04-09 22 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

相關問題