2009-07-12 94 views
1

我正在寫一個基於UITabBarController的應用程序,它具有超過10個viewControllers與相應的UINavigationControllers。每個viewContoller都有一個(簡短)Title和一個(long)navigationTitle。短標題顯示在TabBar圖標下,長標題顯示在導航欄的頂部。自定義UITabBarController選項卡的「更多」列表

UITabBarController顯示前4個選項卡,並自動添加一個「更多」選項卡,其中顯示其餘選項卡的列表。該列表顯示每個視圖控制器的(簡稱)標題。我怎麼能告訴它顯示(長)navigationTitle呢?

回答

3

我最近爲一個應用程序做了這件事,發現最好的方法是創建一個自定義數據源,將更多表中的標題重命名爲長名稱。以另一種方式進行操作簡直不切實際,因爲名稱必須進行太多次更改(一次是標籤欄加載,一次是更多視圖加載,另一次是定製部分加載,再次是定製部分關閉)。

我找到了基本指令here,只是簡單地改變了標題。我使用plist來保存每個部分的所有短名和長名。

我對的cellForRowAtIndexPath代碼:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [originalDataSource tableView:tableView cellForRowAtIndexPath:indexPath]; 
    cell.textLabel.text = [[sections objectAtIndex:indexPath.row+4] objectForKey:@"LongName"]; 
    return cell; 
} 
0

您應該嘗試讓所有選項卡默認爲(長)標題,然後以編程方式將可見選項卡更改爲其(短)名稱。如果您不知道如何以編程方式更改它們,請告訴我。這可能實際上是一種做你想做的事的方法。我會詳細說明提示。

+0

請告訴我如何以編程方式更改可見標籤到他們的(短)的名稱。同時,我通過繼承UITabBarController來實現這一功能,該功能也允許我更改MoreViewController的顏色。 – Vic 2009-07-27 12:03:58