どのタブ項目がアクティブであっても、常に存在するヘッダー画像を持つタブ アプリケーションを作成したいと考えています。
例は Foursquare です。
ボタンを配置して、そのヘッダーにさまざまな情報を表示できるようにしたいと考えています。
それは単純なナビゲーション バーですか、それとも何か他のものですか?
どのタブ項目がアクティブであっても、常に存在するヘッダー画像を持つタブ アプリケーションを作成したいと考えています。
例は Foursquare です。
ボタンを配置して、そのヘッダーにさまざまな情報を表示できるようにしたいと考えています。
それは単純なナビゲーション バーですか、それとも何か他のものですか?
通常、各タブにはviewControllerが関連付けられています。「Tabbed Application」を選択すると、xcode が作成するボイラープレートで確認できます。次に、各ビューコントローラーviewDidLoad
またはinit
各ビューコントローラーで次を設定できます。
self.navigationItem.titleView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
次に、各viewControllerのコントロールをself.navigationItem.leftBarButtonItem
変更するだけです。self.navigationItem.rightBarButtonItem
編集:
appDelegate (didFinishLaunchingWithOptions
メソッド内) で、ナビゲーション コントローラーを使用する場合は、次のように設定する必要があります。
UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
UINavigationController *myNav1=[[UINavigationController alloc] initWithRootViewController:viewController1];
UINavigationController *myNav2=[[UINavigationController alloc] initWithRootViewController:viewController2];
UIImage *navBackgroundImg = [UIImage imageNamed:@"bg_navBar.png"];
UIImage *tabBackgroundImg = [UIImage imageNamed:@"bg_tabBar.png"];
[myNav1.navigationBar setBackgroundImage:navBackgroundImg forBarMetrics:UIBarMetricsDefault];//iOS 5 only
[myNav2.navigationBar setBackgroundImage:navBackgroundImg forBarMetrics:UIBarMetricsDefault];//iOS 5 only
[[UITabBar appearance] setBackgroundImage:tabBackgroundImg];//iOS 5 only
self.tabBarController.viewControllers = [NSArray arrayWithObjects:myNav1, myNav2, nil];
self.window.rootViewController = self.tabBarController;
最も簡単なことは、次のように書くことです。
- (void)viewDidLoad
{
[[UINavigationBar appearance] setBackgroundImage:
[UIImage imageNamed:@"UINavigationBar.png"] forBarMetrics:UIBarMetricsDefault];
}
私の MainViewController では、各ビュー コントローラーで作成されるすべてのナビゲーション バーがそのように構成されます。
単純なナビゲーション バーのように見えますが、厳密には単純ではありません。(バー自体を配置/作成した後) バーに NavigationItem を配置/作成し、titleView を画像付きのカスタム ビューに設定する必要があります。ドキュメントによると、左のバー ボタン (最初の画面で閉じる) を nil にする必要があります。そうしないと、titleView は無視されます。ただし、左ボタン用のこのカスタム ビューにボタンを配置できます。