1

xcode のデフォルトの動作は次のとおりです。ナビゲーション コントローラで最初のビューを表示している場合、「戻る」ボタンはヘッダーに表示されません。戻るボタンは、最初のビューによってインスタンス化された別のビューに移動した場合にのみ表示されます。

最初のビューにいる間、ホーム ボタンまたは戻るボタンが表示されるようにします。それをクリックすると、rootviewcontroller を変更するなど、特定のアクションが実行されます。このボタンを表示するにはどうすればよいですか?また、最初のビューでのみその動作をオーバーライドするにはどうすればよいですか? 他のビューでは、戻るボタンの動作はデフォルトとして機能するはずです。

4

2 に答える 2

0

ルートビューコントローラーのviewDidLoadメソッドで、を初期化UIBarButtonItemし、ナビゲーションコントローラーのツールバーに追加します。

UIBarButtonItem *homeButton = [[UIBarButtonItem alloc]
                              initWithTitle:@"Home"
                              target:[AppDelegate sharedDelegate]
                              action:@selector(changeRootViewController)];
[self.navigationItem setLeftBarButton:homeButton animated:NO];

ルートtargetビューコントローラを交換する場合は、をアプリケーションデリゲートクラスにする必要があります。changeRootViewControllerビューコントローラのスワップを実行するために呼び出されるそのクラスのメソッドを作成します。

homeButtonを使用して、テキストの代わりに画像を使用するようにを変更できますinitWithImage:

于 2012-05-28T13:20:00.260 に答える
0

これを試して:

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
NSString* backBtnImg = @"myImage";
UIImage *buttonImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:backBtnImg ofType:@"png"]];
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setTitle:@"back" forState:UIControlStateNormal];
[button addTarget:self action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height)];

UIBarButtonItem *btnItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = btnItem;
于 2012-05-28T13:13:58.160 に答える