2013-05-17 64 views
0

我開始使用默認的標籤式應用程序,在故事板中添加了一些帶有自己的視圖控制器的標籤,如何知道已經選擇的標籤何時被再次觸摸?標籤欄控制器 - 如何重新選擇選定的標籤

選項卡1轉到已加載其他頁面的web視圖,當用戶再次點擊主頁選項卡時,仍然突出顯示時,我想重新加載初始網址。

感謝您的任何想法!

回答

0

每次觸摸標籤欄時,都會調用UITabBarControllerDelegate方法[– tabBarController:didSelectViewController:]。這個API狀態的文檔:

In iOS v3.0 and later, this (selected view controller) could be the same view controller that was already selected.

所以,如果你發現你指定的標籤被再次選擇,你可以有這樣的委託方法重裝你的初始URL。

+0

我想委託從默認的故事板添加到TabBarController,而且當我改變了類指向一個'code'CustomTabBarController。但是從Outlets部分的代理拖拽的方法不起作用。我試圖觸發這個 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { NSLog(@「Tab touching」); } – Mark

+0

您需要指定* something *作爲您的委託,因此無論在哪個對象中,在.h(「'@ interface'」)文件中,您都需要將「UITabBarControllerDelegate」添加到它的聲明中。 –

+0

我使用@interface CustomUITabBarController:UITabBarController Mark

0
@interface AHTabBarController() <UITabBarControllerDelegate> 
@property (nonatomic, strong) UIViewController* previousViewController; 
@end 

///

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if ([viewController isEqual:self.previousViewController]) 
    { 
      NSLog(@"reselect tabbar"); 
    } 
    self.previousViewController = viewController; 
}