2011-05-30 64 views
0

我有一個帶有五個按鈕的標籤欄控制器。該控制器有一個選項卡視圖控制器。哪個選項卡控制器是被選中的人?

標籤視圖控制器的行爲應該根據所按的標籤而有所不同。

例如,如果選項卡是「位置」,則應根據位置對顯示的數據進行排序。如果標籤是「字母表」,那麼視圖應該根據字母排序。

我在視圖控制器此代碼

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewDidLoad]; 
    [BNUtilitiesQuick parseXMLFileAtURL:@"http://example.com/BusinessSerialized.xml"]; 
    [BNUtilitiesQuick UtilitiesQuick].BizsToDisplay = [BNUtilitiesQuick searchObjectsInContext:@"Business" :nil :@"Title" :YES]; 
    NSLog(@"%@",[self tabBarController]); 
    if ([[self tabBarController]selectedIndex]==0) 
    { 
    } 
    NSLog(@"%d",[[self tabBarController] selectedIndex]); 

    // Do any additional setup after loading the view from its nib. 
} 

[[self tabBarController] selectedIndex]作品,除了一個問題。而不是給出當前選定的索引,它是以前的索引。

說我現在選擇標籤0,然後我點擊標籤4;即NSLog()將顯示0.

我該如何解決這個問題?我想知道被按下的標籤。

+0

如果您使用的是標籤欄控制器,你一般不需要擔心這是選擇的標籤 - 這是選項卡控制器的作業顯示與選定選項卡相對應的控制器的視圖。 – Caleb 2014-01-27 02:21:50

回答

2

通過這種委託方法你會得到你的選擇指標:

# enter code here 
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    NSLog(@"sff %d",tabBarController.selectedIndex); 
} 
+0

所以委託人應該是文件的所有者tabController – 2011-05-30 11:25:53

+0

什麼協議是否定義了這個東西? – 2011-05-30 13:16:52

相關問題