0

私のメインウィンドウには、これらの2つのボタン「設定」(leftBarButtonItem)と「i」(情報ボタン、右バーボタンアイテム)があります

情報ボタンを押すと「無料」の戻るボタンが表示されますが、設定ボタン用にプログラムで作成する必要がありますか? 何故ですか?

これがviewDidLoadでボタンをプログラムする方法です

UIBarButtonItem *settingsBarButtonItem =[[UIBarButtonItem alloc]initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(settings:)]; 
self.navigationItem.leftBarButtonItem = settingsBarButtonItem;

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
CGRect frame = infoButton.frame;
frame.size.width = 40.0f;
infoButton.frame = frame;
[infoButton addTarget:self action:@selector(about:) forControlEvents:UIControlEventTouchUpInside];
butInfo = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
self.navigationItem.rightBarButtonItem = butInfo;
4

1 に答える 1

0

ViewController はどのように呼び出されましたか? 一般に、「無料」の戻るボタンは、View Controller が親 ViewController によってナビゲーション スタックにプッシュされた場合にのみ発生します。これは、セグエ経由 (ストーリーボードを使用している場合)、または - (void)pushViewController:(UIViewController *)viewController animation:(BOOL)animated (UINavigationController へのメッセージ) 経由である可能性があります。

UINavigationController ドキュメントから: 最上位のビュー コントローラーにカスタムの左バー ボタン項目がなく、前のビュー コントローラーのナビゲーション項目の backBarButtonItem プロパティに有効な項目がある場合、ナビゲーション バーにその項目が表示されます。

カスタム バー ボタン項目がどちらのビュー コントローラーでも指定されていない場合、デフォルトの戻るボタンが使用され、そのタイトルは前のビュー コントローラー (つまり、1 レベル下のビュー コントローラー) の title プロパティの値に設定されます。スタック。(ナビゲーション スタックに View Controller が 1 つしかない場合、[戻る] ボタンは表示されません。)

これは、親ビュー コントローラーの Title プロパティを設定して、その名前の戻るボタンを表示する必要があることを意味します。

于 2013-10-06T22:13:47.443 に答える