Я приспособил подход, предложенный в iAdSuite приведены здесь
http://developer.apple.com/library/ios/#samplecode/iAdSuite/Introduction/Intro.html
Я загрузил код и сфокусировался на примере «табуляции».Я скопировал файл BannerViewController.h/.m, как в мой проект.
Я создал все свои взгляды обычным способом с помощью подхода раскадровки. Тем не менее, в моем классе AppDelegate я получил доступ к уже построенной панели вкладок, содержащей все расклассифицированные viewControllers.
Класс AppDelegate реализует протокол TabBarControllerDelegate:
@interfaceAppDelegate : UIResponder <UITabBarControllerDelegate, UIApplicationDelegate>
Метод didFinishLaunchingWithOptions реализации AppDelegate захватывает предварительно встроенный TabBar, установив его делегата на себя (например, класс AppDelegate).
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
// ----------------------------------------------------------
// Set the TabBarController delegate to be 'self'
// ----------------------------------------------------------
_tabBarController = (UITabBarController*)self.window.rootViewController;
// tabController.selectedIndex = [defaults integerForKey:kOptionLastTabSelectedKey];
_tabBarController.delegate = self;
// update tab bar per iAdSuite approach
[self updateiAd];
Затем я построил новый набор контроллеров на подходе iAdSuite и сбросьте панель вкладок с этими новыми вкладка штриховых элементов.
-(void)updateiAd {
NSArray* viewControllers = [_tabBarController viewControllers];
NSMutableArray*newViewControllers = [[NSMutableArray alloc] init];
BannerViewController*bvc=NULL;
for(UIViewController * vc in viewControllers) {
bvc = [[BannerViewController alloc] initWithContentViewController:vc];
[newViewControllers addObject:bvc];
}
// set the new view controllers, replacing the original set
[_tabBarController setViewControllers:newViewControllers];
}
Этот подход ставит одно и то же «объявление» в нижней части каждого вида, в точности как необходимо. Я также должен был установить заголовок представления в методе viewDidLoad для каждого настраиваемого viewController (как бы то ни было, установка его на элемент панели, похоже, не работала, не создавала изображение, но позже может отражать проблему с моими изображениями).
Моя первоначальная конфигурация
TabViewController
NavController1 NavController2 NavController3 ...
| | |
CustomViewController1 CustomViewController2 CustomViewController3
Моя конечная конфигурация теперь
TabViewController
NavController1 NavController2 NavController3 ...
| | |
iAdView1 iAdView2 iAdView3
| | |
CustomViewController1 CustomViewController2 CustomViewController3
С точки зрения зрения жизненного цикла, я должен добавить, что только NavControllers в существовании в то время метод updateiAd является называется.
Индивидуальные CustomViewControllers1/2/3/etc создаются после завершения вызова.
Очень полезно, я пытаюсь это сейчас. – bentford
Я реализовал что-то подобное, но имел трудности во взглядах, где я использую UISearchBar как tableViewHeader, так же как и в представлениях, где navBar прозрачен – coneybeare
Это действительно работает –