4つのタブを持つios 6をターゲットとするユニバーサルタブ付きアプリがあります。リリースの準備がほぼ整い、iAds をサポートする最新かつ最高の方法を検討し始めました。Apple の iAdSuite デモ プロジェクトを見てみると、BannerViewController を使用して 4 つの UIViewController をラップすることが完璧な解決策のように思えます。
そして、iAd を正しく表示するという点で完璧に機能します。
ただし、変更を加えてから、タブバーに画像/アイコンが表示されなくなりました。BannerViewController コードを 1 行ずつ調べましたが、画像設定をオーバーライドしているように見えるものは何も表示されません。
私が行った変更は次のとおりです。
- プロジェクトに BannerViewController.h & .m を追加します。
- #import < iAd/iAd.h> を 4 つの UIViewController のそれぞれに追加します。
- タブ ビュー コントローラーを設定する AppDelegate コードを次のように変更します。
から
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.delegate = self;
self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3, viewController4];
に
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.delegate = self;
self.tabBarController.viewControllers = @[
[[BannerViewController alloc] initWithContentViewController:viewController1],
[[BannerViewController alloc] initWithContentViewController:viewController2],
[[BannerViewController alloc] initWithContentViewController:viewController3],
[[BannerViewController alloc] initWithContentViewController:viewController4]
];
4 つのビュー コントローラーのそれぞれで、initWithNibName メソッドに次のコードがあります (適切なタイトルと画像名を使用)。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Library", @"Library");
self.tabBarItem.image = [UIImage imageNamed:@"96-book"];
}
return self;
}
元のコードでは、タイトルと画像は期待どおりに機能します。変更されたコードを使用すると、タイトルは表示されますが、画像は表示されず、黒いボタンのみが表示されます。誰もこれに遭遇したことがありますか?
注: Apple サンプル アプリでこれを試してみましたが、そこに画像を表示することもできません。サンプル アプリは iOS5 をターゲットにしており、私のアプリは iOS6 をターゲットにしています。