2011-10-06 24 views
6

ライブラリにUINavigationBarを追加して表示します。また、このNavigationBarにUINavigationItemを追加します。ナビゲーションボタンが表示されない、UINavigationItemに戻るボタンを追加する方法

viewController.mに次のコードを追加しましたが、[戻る]ボタンは表示されません。

self.navigationItem.title = @"List"; 
self.navigationItem.backBarButtonItem.title = @"Back"; 
+1

'self.navigationItem.hidesBackButton = NO'を試しましたか? – EmptyStack

+0

は、戻るボタンまたはナビゲーションバー全体が表示されないだけですか? – HeikoG

+1

私はちょうどこの問題を抱えており、これが私のために解決しました:http://stackoverflow.com/questions/2485671/uinavigationcontroller-back-button-not-visible-but-works – banDedo

答えて

2

self.navigationItem.backBarButtonItemは、ナビゲーションバーには、左のボタンが表示されていない場合、あなたは、self.navigationControllerによって制御されるナビゲーションスタックに別のビューを、押した後にのみ表示されます。アップルのドキュメントから

この項目は、ナビゲーションバーには先頭の項目-それはナビゲーションバーの[戻る]ボタンとして表すことができる、以下の次の項目でのバックアイテムです。このプロパティを使用して、戻るボタンを指定します。あなたが設定するバックバーボタン項目のターゲットとアクションはnilでなければなりません。デフォルト値は、ナビゲーションアイテムのタイトルを表示するバーボタンアイテムです。

+0

あなたの情報に感謝します。現在私はしていませんナビゲーションスタックにプッシュビューを使用します。 addSubViewメソッドを使ってこのビューをメインビューから呼び出しました。どのように私のnavigationItemに戻るバーボタンアイテムを追加するか、どのようにバックバーボタンアイテムを有効にするか。 –

+0

カスタムボタンを作成し、 'self.navigationItem.leftBarButtonItem'として設定する必要があります。 @ 516 – Nekto

+0

私はそれを試してみてください。しかし、まだ表示されません。 –

2

バックボタンのアクションイベント

**To hide your default back button use this,** 



self.navigationItem.hidesBackButton = YES; 

UIImage* image = [UIImage imageNamed:@"back.png"]; 
    CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height); 
    UIButton* backbtn = [[UIButton alloc] initWithFrame:frame]; 
    [backbtn setBackgroundImage:image forState:UIControlStateNormal]; 
    [backbtn setShowsTouchWhenHighlighted:YES]; 
    [backbtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem* backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backbtn]; 
    [self.navigationItem setLeftBarButtonItem:backButtonItem]; 
    [backButtonItem release]; 
    [backbtn release]; 

、このコードを試してみてください。

-(IBAction)goBack{ 
//ur code here 

}

2

このコードは、それをuに

UIButton *moreButton1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [moreButton1 setImage:[UIImage imageNamed:@"left_arrow.png"] forState:UIControlStateNormal]; 
    //[moreButton setImage:[UIImage imageNamed:@"Button_OtherInfo_Active.png"] forState:UIControlStateHighlighted]; 
    [moreButton1 addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside]; 
    [moreButton1 setFrame:CGRectMake(0, 0, 50,30)]; 
    self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:moreButton1]; 
を助けるだかもしれ試してみてください

これは少し古いですが、場合には、誰かが答えを探しているviewDidLoad

-(void)backClick 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
0

にこのコードを置く...

戻るボタンが自動的に示しているが、現在のビュー(ない1プッシュされている)にはタイトルが必要です。例えば:あなたは

[self.navigationController pushViewController:aViewController animated:YES]; 

でビュースタックにビューを押すと

その後
- (void)viewDidLoad 
{ 
    self.title = @"Home"; 
    [super viewDidLoad]; 
} 

、バックボタンが表示されます。 UINavigationItemまたはUINavigationBarを混乱させる必要はありません。それらを使用してナビゲーションバーをカスタマイズします。 xcodeの一部であるNavBarというサンプルプロジェクトを見てください。あなたがUIBarButtonItemsであなたのナビゲーションコントローラをカスタマイズする場合、それはあなたがナビゲーションバーをカスタマイズしていると想定するためのフレームワークは、デフォルトで[戻る]ボタンを削除し

self.navigationItem.leftItemsSupplementBackButton = YES; 

8

はこれを試してみてください。その行を使用して、戻るボタンをもう一度追加します。

関連する問題