頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


タブ+ナビゲーションでタイトルとアイコンの設定

iPhoneの画面下部にタブが出て、かつ、画面上部にナビゲーションのバーが出る場合。
コード上でどうするのかな、、、とちょっと引っかかったのでメモ。
相変わらず、Interface Builderは使いません。

HogeAppDelegate.mの初期化部分で各オブジェクトを設定します。
下のコードだと2画面の"Tab Bar アプリ"になります。
    // view controller
    View1Controller *view1Controller = [[View1Controller alloc] initWithNibName:nil bundle:nil];
    View2Controller *view2Controller = [[View2Controller alloc] initWithNibName:nil bundle:nil];
   
    // navigation controller
    UINavigationController *navi1Controller = [[UINavigationController alloc] initWithNibName:nil bundle:nil];
    [navi1Controller pushViewController:view1Controller animated:NO];
   
    UINavigationController *navi2Controller = [[UINavigationController alloc] initWithNibName:nil bundle:nil];
    [navi2Controller pushViewController:view2Controller animated:NO];
   
    // tab bar controller
    UITabBarController *tab = [[UITabBarController alloc] initWithNibName:nil bundle:nil];
    [tab setViewControllers:[NSArray arrayWithObjects:navi1Controller, navi2Controller , nil]];
    [window addSubview:tab.view];

    [view1Controller release];
    [view2Controller release];
    [navi1Controller release];
    [navi2Controller release];
お作法的にはこんな感じになるみたい。
名前通り、View1ControllerクラスはUIViewControllerを継承しています。
Xcodeで新規ファイル追加でUIViewControllerクラスを継承したファイルを作成します(View1Controller、 View2Controllerとも)。

ところで、タブのアイコンの下に「設定」とか文字を表示させてるじゃないですか。
あの設定はどうするのかと思ったら、このサンプルではView1Controller、View2Controller側でするようです。 んー、ちょっと違和感が。
UITabBarControllerのオブジェクトを作ってるんだから、そこからごにょごにょやりたい気分ですがね。
まあ多分できるのでしょうけど、まだ私がやり方をしらないだけかと思います。
とりあえず、View1Controllerクラスなどの実装部分で

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
       
        self.title = @"設定";
        self.navigationItem.title = @"【設定】";
        self.tabBarItem.image = [UIImage imageNamed:@"gear.png"];
    }
    return self;
}
というようにするみたい。
なんでタイトル設定が二つあるかというと、最初の方だけでも構いませんが、その場合、タブのアイコン下の文字とナビゲーション部分の文字が同じになります。
画面上部のナビゲーション部分の表示を変更したい場合は5行目のように設定します。
タブに使うアイコンの画像も6行目のようにして設定すればOK。

↓こんな感じ。
tab bar applicationのスクリーンショット

<< セルの右の方に飾りで警告が出るぞ?  TopPage  初めて買った有料アプリはStar Walk >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/390-6b9010dc




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad