Чтобы получить контроллер, просто:
[[tabBarController viewControllers] objectAtIndex:indexOfTheTab]
tabBarController
относится к UITabBarController *tabBarController
в вашем AppDelegate.
РЕДАКТИРОВАТЬ 1: добавьте это в свой AppDelegate.h
-(UITabBarController*)getTabBarController;
добавьте это в свой AppDelegate.m
-(UITabBarController*)getTabBarController { return tabBarController; }
Теперь вы можете получить к нему доступ из любого места:
[(AppDelegate*)[[UIApplication sharedApplication] delegate] getTabBarController]
Не забудьте #import "AppDelegate.h"
РЕДАКТИРОВАТЬ 2: В вашем AppDelegate.m
В первом методе просто добавьте: self.tabBarController.delegate = self;
Затем переопределите:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
//something like : [tabBarController hideTheStuffs];
}
С EDIT 2Вы можете прослушивать прикосновения пользователя на панели вкладок, даже если элемент вкладки уже является текущим.С помощью EDIT 1 вы можете получить доступ к своему делегату из любого места, если это необходимо.
EDIT 3:
Есть ли у вас IBOutlet UIWebView *myWebView
в вашем ControllerView.h (тот, который отображает веб-интерфейс)Посмотреть).Если нет, добавьте эту розетку, затем подключите ее к веб-представлению в конструкторе интерфейсов.
В контроллере добавьте метод в .h и .m:
-(void)hideTheWebView { myWebView.hidden = YES; }
Поскольку этот метод объявлен в интерфейсе (.h), его можно вызвать из AppDelegate, метод tabBarController: didSelectViewController.