1

どのタブ項目がアクティブであっても、常に存在するヘッダー画像を持つタブ アプリケーションを作成したいと考えています。

例は Foursquare です。

ここに画像の説明を入力

ボタンを配置して、そのヘッダーにさまざまな情報を表示できるようにしたいと考えています。

それは単純なナビゲーション バーですか、それとも何か他のものですか?

4

3 に答える 3

3

通常、各タブには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;
于 2012-04-30T20:36:48.123 に答える
0

最も簡単なことは、次のように書くことです。

- (void)viewDidLoad
{
    [[UINavigationBar appearance] setBackgroundImage:
     [UIImage imageNamed:@"UINavigationBar.png"] forBarMetrics:UIBarMetricsDefault];
}

私の MainViewController では、各ビュー コントローラーで作成されるすべてのナビゲーション バーがそのように構成されます。

于 2012-05-01T17:16:38.747 に答える
0

単純なナビゲーション バーのように見えますが、厳密には単純ではありません。(バー自体を配置/作成した後) バーに NavigationItem を配置/作成し、titleView を画像付きのカスタム ビューに設定する必要があります。ドキュメントによると、左のバー ボタン (最初の画面で閉じる) を nil にする必要があります。そうしないと、titleView は無視されます。ただし、左ボタン用のこのカスタム ビューにボタンを配置できます。

于 2012-04-30T20:27:52.127 に答える