2012-08-16 19 views
0

我想知道什麼時候爲uitabbbarviewcontroller設置了setSelectedIndex, 哪個委託方法將被調用。TabBarController setSelectedIndex - 將調用哪個委託方法

在我的應用程序,我有歌曲列表purchase.when用戶點擊購買按鈕,任何一首歌曲,我將顯示下載tab.for是我設置[self.tabBarController setSelectedIndex:3];有我顯示歌曲的細節和progressview是多少是downroded等

這是很好的upto this.in與此同時的下調詩用戶可以去點擊購買另一首詩。 這裏我想重新加載tableview.but我不知道在哪個委託方法我應該調用重新加載數據的tableview。

我試過viewwillappear和viewdidappear。但這些不叫。 那麼請告訴我哪個委託方法將被調用。

非常感謝

回答

1
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController; 

只有當用戶點擊它,當你編程方式設置此,那就不叫被調用。 你可以只要你做到這一點編程,做你需要做什麼都火了自定義委託方法或通知......

+0

爲什麼赫克委託方法不叫?有什麼理由呢? – yunas 2013-03-07 16:31:09

+0

好,當你設置它..你可以做任何你想要做的事情時,delgate方法被稱爲..所以你可以做它,你在程序設置它。 – 2013-03-07 17:56:30

+0

這就是我所說的不叫。我已經提出查詢太仁慈地看到這個更多的信息http://stackoverflow.com/questions/15278537/why-does-selecting-a-tabbarcontroller-index-programatically-doesnt-call-delegate – yunas 2013-03-07 18:06:09

3

覆蓋的UITabBarController的setSelectedIndex:

-(void)setSelectedIndex:(NSUInteger)selectedIndex 
{ 
    //must call super function. 
    [super setSelectedIndex:selectedIndex]; 

    [self myMethod]; 
} 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    [self myMethod]; 
}