アクティブなタブ項目に関係なく、常に存在するヘッダーイメージを持つタブアプリケーションを作成したいとします。ヘッダー画像をタブアプリケーションの上部に固定するにはどうすればよいですか?
の例では、フォースクエアのようになります。
私は、ボタンを配置し、そのヘッダに表示されるさまざまな情報を持つことができるようにしたいです。
これは単純なナビゲーションバーなのですか?
アクティブなタブ項目に関係なく、常に存在するヘッダーイメージを持つタブアプリケーションを作成したいとします。ヘッダー画像をタブアプリケーションの上部に固定するにはどうすればよいですか?
の例では、フォースクエアのようになります。
私は、ボタンを配置し、そのヘッダに表示されるさまざまな情報を持つことができるようにしたいです。
これは単純なナビゲーションバーなのですか?
私は最も簡単な方法を見つけましたdoは次のように書いてください:
- (void)viewDidLoad
{
[[UINavigationBar appearance] setBackgroundImage:
[UIImage imageNamed:@"UINavigationBar.png"] forBarMetrics:UIBarMetricsDefault];
}
私のMainViewControllerと、各viで作成されるすべてのナビゲーションバーewコントローラはそのように設定されます。
単純なナビゲーションバーのように見えますが、まったく単純ではありません。バーにNavigationItemを配置/作成し(バー自体を配置/作成した後)、titleViewを画像とともにカスタム表示に設定する必要があります。ドキュメントによると、左のバーのボタン(最初の画面で閉じる)はゼロでなければならず、さもなければtitleViewは無視されます。左ボタン用のこのカスタムビューにボタンを配置することはできますが、
通常、タブごとにviewControllerが関連付けられています。あなたは "タブ付きアプリケーション"を選択すると、xcodeが作成する定型文でそれを認識することができます。各viewDidLoad
内または各init
におけるその後 は、あなたが設定できるのViewController:それぞれのViewControllerであなたのコントロールと
self.navigationItem.titleView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
それからちょうど変更self.navigationItem.leftBarButtonItem
とself.navigationItem.rightBarButtonItem
。
編集:あなたはnavigationcontrollersを使用する場合は、このようなものを設定しました(didFinishLaunchingWithOptions
方法で)appDelegateで
:
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;
これはうまくいきませんでした...たぶん私は何か間違っています...しかし、タブ付きアプリケーションを作成すると、ナビゲーションバーが表示されません。ナビゲーションバーを特定のタブビューにドラッグするだけでいいですか? –
@DanielRibeiro回答が更新されました。私の編集を参照してください.. – Mat