1

奇妙に思えるかもしれませんが、最初のナビゲーションコントローラーのビューのナビゲーションバーに戻るボタンを追加する必要があります。私はこのように試しました:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Foo" style:UIBarButtonItemStyleBordered target:self                                                          action:@selector(foo:)]; 
self.navigationItem.backBarButtonItem=backButton;

backBarButtonItem の代わりに leftBarButtonItem と書くと、ボタンが表示されます。私の問題は、通常の戻るボタンとして矢印ボタンが必要なことです。これは可能ですか?

4

5 に答える 5

1

通常、これはすぐに使用できますが、モーダル ビューやアクション シートでは、これが必要になる場合があります。ビューコントローラーをインスタンス化してナビゲーションコントローラースタックにプッシュする直前に、試してください

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"Back" style: UIBarButtonItemStyleBordered target: nil action: nil];
    [[self navigationItem] setBackBarButtonItem: newBackButton];
    [newBackButton release];

    DetailViewController *detailVC = [[DetailViewController alloc]init];
    [self.navigationController pushViewController:detailVC animated:YES];
    [detailVC release];
于 2011-04-11T09:14:09.057 に答える
0

または、次のこともできます-私はこの方法を好みます。これは別の投稿から入手しました。

http://www.teehanlax.com/blog/?p=447から派生した次のpsdを使用します

http://www.chrisandtennille.com/pictures/backbutton.psd

次に、ツールバー項目のcustomViewプロパティで使用するカスタムUIViewを作成します。

私にとってはうまくいきます。

それが少し役立つことを願っています

于 2010-09-28T13:08:57.710 に答える
0

子コントローラーがプッシュされる前に、backBarButtonItemコントローラーでプロパティを設定する必要があるため、最初の NavigationController ビューでそれを行うことはできないと思います。また、Apple docsによると、のターゲットとアクションは である必要があります。backBarButtonItemnil

UIToolbar での左矢印ボタンの作成に関するこの質問は、(leftBarButtonItem の) カスタム イメージを使用してこれを回避する方法についてのアイデアを提供する場合があります。

于 2010-09-27T16:39:37.747 に答える
0

もちろん、これを行うことができます。leftBarButtonItem のタイトルを元に戻すだけで、タイトルが元に戻った素敵な左矢印ボタンが表示されます。次に、ボタンがクリックされたときに実際にメソッドを実行するようにセレクターを変更します。そう@selector(foo:)

上記を達成する方法に関するいくつかのコードを次に示します。

self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleDone;
self.navigationItem.leftBarButtonItem.title = @"Back";
self.navigationItem.leftBarButtonItem.target = self;
self.navigationItem.leftBarButtonItem.action = @selector(endTextEnteringButtonAction:);

それが役立つかどうか教えてください。

于 2010-09-27T16:47:54.057 に答える
0

アップルのドキュメントは次のように述べています。

このナビゲーション アイテムがスタックの一番上のアイテムのすぐ下にある場合、ナビゲーション コントローラーは、このナビゲーション アイテムからナビゲーション バーの戻るボタンを派生させます。

したがって、ナビゲーション アイテムがスタックの一番上にある場合 (ここで話しているように)、ナビゲーション コントローラーに戻るボタンを追加することはできません。これは、スタックの一番上のアイテムであるため、ナビゲーション コントローラーに戻ることができる場所がないためです。

更新された回答:検索した後、これらのリンクのナビゲーションコントローラーのルートビューコントローラーに戻るボタンを作成する作業が見つかりました

とても簡単です:)

[self.navigationItem setHidesBackButton:YES animated:YES];
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStyleBordered target:self action:@selector(initializeStuff)];

self.navigationItem.leftBarButtonItem = backButton;
于 2012-12-17T05:04:04.103 に答える