Легко, у вас уже есть решение!
tabBarController
Родитель или предок, который является контроллером панели вкладок.(только для чтения)
@ свойство (неатомное, только для чтения, сохранение) UITabBarController * tabBarController
Обсуждение Если получатель добавлен в контроллер панели вкладок, это свойство является контроллером панели вкладок.Если контроллер навигации получателя добавлен в контроллер панели вкладок, это свойство является контроллером панели вкладок контроллера навигации.Если панель вкладок отсутствует или получатель является модальным представлением, это свойство равно nil.
Это означает, что любой viewController, добавляемый в контроллер панели вкладок, имеет это свойство, заполненное системой.
Затем в контроллере вида, который вы хотите использовать для вкладки, вы реализуете viewWillAppear
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSUInteger selectedIndex = self.tabBarController.selectedIndex;
switch (selectedIndex) {
case 0:
//configure me
break;
case 1:
//configure me differently!!
break;
default:
break;
}
}
В свете комментариев это свойство tabBarController не выглядит надежным.
Проблема, которую вы описываете, звучит как нечто, что может быть решено с помощью подклассовСоздайте подкласс UIViewController для кода, общего с каждой вкладкой, а затем создайте подкласс для своего подкласса для каждой вкладки. ViewController внесет изменения, уникальные для вкладки.
В качестве альтернативы вы можете загрузить каждую вкладку с тем же классом, но с другим символом xib.,Вы можете установить свойства на вашем контроллере представления в разделе «пользовательские атрибуты времени выполнения» в конструкторе интерфейса.Затем в блоке viewWillAppear просто проверьте свойство, установленное xib для этого экземпляра.