1

下部のタブ バーを使用してアプリの 5 つのセクションをめくるプロジェクトに取り組んでいます。これらのセクションの 1 つはマップ ビューをロードし、Web ビューを生成します。最初はRound Rect Buttonsでやっていたのですが、ビューの邪魔になったので、ナビゲーションバーに切り替えることにしました。Interface Builder で、ナビゲーション項目を挿入し、その中に 2 つのバー ボタン項目 (左側と右側) を挿入しました。ファイルの所有者からコントロールをドラッグして各ボタンに関連付けられたメソッドを起動することで、両方のボタンが機能する機能を取得しました。これは正常に機能し、Web ビューを起動しますが、できるようにしたいのですが、これまでのところ方法をまだ理解していないのは、Web でボタンの 1 つを「完了」または「戻る」ボタンに変更することです。見る。プログラムで両方のボタンを作成しようとしましたが、どちらも表示されません。

UIBarButtonItem *updatePosition = [[UIBarButtonItem alloc] initWithTitle:@"Update Position" 
style:UIBarButtonItemStylePlain target:self action:@selector(findMe)];

self.navigationItem.leftBarButtonItem = updatePosition;

[updatePosition release];

アプリを実行すると、Xcode を使用して挿入したナビゲーション アイテムにボタンが表示されません。ボタンを表示させる唯一の方法は、前述のように Interface Builder でボタンを挿入することです。しかし、新しいビューを表示すると、左ボタンを「戻る」または「完了」ボタンに変更できません。このコードを実行して、このコードで IB を使用して挿入した UIBarButtonItem のボタンのスタイルを変更しようとしました

self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleDone;

しかし、役に立たない。

4

1 に答える 1

0

途中で役立つユーティリティメソッドを次に示します。

+ (UIBarButtonItem *)setRightBarButtonItem:(SEL)action target:(id)sender withImage:(NSString *)imageName {
    UIImage *buttonImage = [UIImage imageNamed:imageName];
    UIBarButtonItem *buttonItem = [[[UIBarButtonItem alloc] initWithImage:buttonImage
                                                                    style:UIBarButtonItemStyleBordered
                                                                   target:sender
                                                                   action:action] autorelease];

    return buttonItem;
}

+ (UIBarButtonItem *)setRightBarButtonItem:(SEL)action target:(id)sender withBarButtonSystemItem:(UIBarButtonSystemItem)systemItem {
    UIBarButtonItem *buttonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:systemItem
                                                                                 target:sender
                                                                                 action:action] autorelease];

    return buttonItem;
}

使用法:

// Done button.
self.navigationItem.rightBarButtonItem = [Utility setRightBarButtonItem:@selector(doneTapped:) target:self withBarButtonSystemItem:UIBarButtonSystemItemDone];
于 2011-03-15T02:52:32.060 に答える