2011-08-30 42 views
9

私はUITableViewControllerを持っています。セルをクリックすると、新しいビューをプッシュします。これは正常に動作しますが、新しいビューには戻るボタンがありません。どうしてこれなの?プッシュされたUIViewControllerに戻るボタンが表示されない

TableViewCode:

if([[NSUserDefaults standardUserDefaults] boolForKey:@"isLoggedIn"]) 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    ProfileViewController* profileViewController = [[ProfileViewController alloc] initWithNibName:@"ProfileViewController" bundle:nil]; 
    profileViewController.message = [NSDictionary dictionaryWithObjectsAndKeys:cell.textLabel.text, @"user_login", @"default", @"message_source", nil]; 
    switch(indexPath.row) { 
     case kUsernameRow:     
      [self.navigationController pushViewController:profileViewController animated:YES]; 
      [profileViewController release]; 
      break; 
     case kAboutRow:     
      break; 
     case kTOSRow:     
      break; 
    } 
} 
+1

親ビューで 'self.navigationItem.backBarButtonItem;'を設定していますか? – Nekto

+1

ProfileViewControllerには、 'self.navigationItem.rightBarButtonItem = replyButton;' –

+1

のみがあり、ProfileViewControllerのプロファイルはありません。 – Nekto

答えて

14

:ないnilが、空文字列)。

戻るボタンには、ナビゲーションスタック上の前のコントローラのタイトルが空の文字列であるため表示されないバグがあります。したがって、テーブルビューコントローラ内でタイトルをnilまたはコード内の文字列に設定する必要があります。 Interface Builderの一部の文字列(af34にnilに設定することはできません)。

4

アップルのドキュメントから:

ナビゲーションバーの左側にあるバーボタンアイテムはバックナビゲーションスタック上の前のビューコントローラへのナビゲーションが可能になります。ナビゲーションコントローラは、ナビゲーションバーの左側を次のように更新します。

新しいトップレベルビューコントローラにカスタムの左バーボタンアイテムがある場合、そのアイテムが表示されます。カスタム左バーボタン項目を指定するには、ビューコントローラのナビゲーション項目のleftBarButtonItemプロパティを設定します。

トップビューコントローラーにカスタムの左バーボタンアイテムがなく、前のビューコントローラーのナビゲーションアイテムに有効なアイテムがbackBarButtonItemプロパティにある場合、ナビゲーションバーにそのアイテムが表示されます。

いずれかのビューコントローラでカスタムバーボタン項目が指定されていない場合は、デフォルトの戻るボタンが使用され、そのタイトルは以前のビューコントローラのtitleプロパティの値、つまりビューコントローラスタック上の1つ下のレベル。あなたのテーブルビューコントローラは、ペン先から作成されている場合は、そのデフォルトのタイトルは@""(予告です(ボタンが表示されていないバック、ナビゲーションスタック上の唯一のビューコントローラがある場合。)

+0

デフォルトの戻るボタンが表示されない理由を理解できません。私は2つのUITableViewControllerを持っており、すべてNavigationController内にあります。最初のtableviewは2番目を押します。 –

+0

'self.navigationController'がnilでないことを確認してください。 – Nekto

+1

'[self。navigationController pushViewController:profileViewController animated:YES;;作品 –

2

ナビゲーションコントローラのナビゲーションバーが有効になっているかどうかを確認してください。 IBのナビゲーションコントローラのナビゲーションバーをクリックし、「隠し」が選択されていないかどうかを確認します。チェックマークを付けると、ナビゲーションバーが表示されないので、戻るボタンも見えなくなります。

関連する問題