7

ルートビューコントローラーから(コアデータテンプレートを使用するナビゲーションベースのアプリケーションを使用して)新しいビューコントローラーを正常にプッシュできるという問題がありますが、ルートビューコントローラーとは別のxibファイルである詳細ビューはそうではありません。 t戻るナビゲーションボタンを表示します。私はIBですべての適切な接続を行ったと確信しており、他のすべては期待どおりに機能しています。

RootViewController.h

@class ItemsViewController;

@interface RootViewController : UITableViewController <NSFetchedResultsControllerDelegate> {

IBOutlet ItemsViewController *itemsVC;

}

@property (nonatomic, retain) IBOutlet ItemsViewController *itemsVC;

@end

RootViewController.m

#import "ItemsViewController.h"

@synthesize itemsVC;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
// Pushes to ItemsViewController

ItemsViewController *itemsViewController = [[ItemsViewController alloc] initWithNibName:@"ItemsViewController" bundle:[NSBundle mainBundle]];

[self.navigationController pushViewController:itemsViewController animated:YES];
[itemsViewController release];

}

ItemsViewControllerは、ItemsViewControllerとも呼ばれる独自のxibを持つUITableViewControllerサブクラスです。繰り返しになりますが、RootViewControllerからプッシュされますが、戻るボタンはこのようには表示されません。ナビゲーションコントローラーを使う「無料」の機能だと思いました。ご想像のとおり、これは非常に苛立たしい障害であり、助けていただければ幸いです。

4

5 に答える 5

14

あなたのItemsViewControllerクラスはそのメソッドにそのtitleプロパティを設定していますか?viewDidLoad

Appleのヒューマンインターフェイスガイドラインに準拠するために[tableView deselectRowAtIndexPath:indexPath animated:YES]、の最後の行として呼び出す必要があります。tableView:didSelectRowAtIndexPath:

于 2010-08-06T03:53:02.270 に答える
10

ええ、RootViewControllerにタイトルがあることを確認してください。タイトルがない場合は、ボタンが表示されません。プログラムでタイトルを設定するには;

self.navigationItem.title = @"Hello Der";
于 2010-08-06T04:31:43.023 に答える
1

将来の読者のためのいくつかの追加情報:アプリケーションのロード時にナビゲーション階層を再設定しようとしたときにこの問題が発生したため、アプリデリゲートのapplication:didFinishLaunchingWithOptions:メソッドからsetViewControllers:を呼び出していました。そして、戻るボタンが表示されないという同じ問題に遭遇していました。

私の場合、viewDidLoadでルートビューコントローラのナビゲーションアイテムのタイトルを設定しても機能しませんでした。おそらく、他のビューが最初に読み込まれ、ルートのタイトルがnullとして表示されていたためです。代わりに、setViewControllers:を呼び出す直前に、application:didFinishLaunchingWithOptions:メソッドでルートビューコントローラーのナビゲーションアイテムのタイトルを設定しました。これで修正されました。

于 2010-10-25T14:51:45.333 に答える
0

次のスニペットを試してください。それは私のために働きます!

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"Image.png"] forBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBar bringSubviewToFront:[self.navigationController.navigationItem backBarButtonItem]];
于 2013-02-28T12:33:32.173 に答える
0

これは、あなたが骨頭で、ビューをナビゲーションコントローラーにプッシュするのではなく、誤ってビューをモーダルとして初期化した場合にも発生する可能性があります。

おっと:[自己presentModalViewController:navControllerアニメーション:YES]; 意味:[self.navigationController pushViewController:controllerアニメーション:YES];

于 2013-03-22T00:09:11.093 に答える