web-dev-qa-db-ja.com

ナビゲーション項目の左側にバーボタン項目を追加する

私はアプリにサイドバーナビゲーションを追加する this チュートリアルに従っています。

指定されたソースコードでは、事前定義されたストーリーボードレイアウトが提供されています。その1つは、「ナビゲーションアイテム」と上部ナビゲーションバーの左側に表示される「バーボタンアイテム」を持つビューです。

アプリでも同じようにしようとしていますが、ボタンアイテムが右側に自動的に表示され続け、ボタンを左側に移動する方法が見つかりません。

チュートリアルで提供されている例では、このアウトレットオプションのleftBarButtonオプションが表示されています。

enter image description here

そして、私のものをチェックすると、次のようになります。

enter image description here

SWRevealViewの動作方法のため、ナビゲーションコントローラーはありません。アプリを実行すると、ボタンが表示され、完全に機能します。問題は、右側にあることだけです。私の見解を例と比較しましたが、違いを見つけることができません。

どんな助けでもありがたいです。

[〜#〜] edit [〜#〜]これは役立つかもしれません。ストーリーボードでは、これは実際の例のようになります。

enter image description here

そして、これは私のように見えます

enter image description here

11
LondonAppDev

BarButtonItemをドラッグして、ナビゲーション項目の左側に配置します。

18
Amit

ストーリーボードでそれを管理する方法が見つからなかったため、ビューコントローラーのViewDidLoad関数で次のコードを追加してコード化しました

self.navigationItem.leftBarButtonItem = _sidebarButton;
self.navigationItem.rightBarButtonItem = nil;
7
Chesh

1 /。 Storyboard > Open as > Source Codeを右クリック

2 /。 Ctrl + F : <name of View Controller>でView Controllerを見つける

3 /。 navigationItemを見つけます> barButtonItemは次のように表示されます:

<navigationItem key="navigationItem" title="Title" id="n9s-Cu-Dtc">
   <barButtonItem key="rightBarButtonItem" title="Item" image="menu-icon-2.png" id="aN6-4T-o4T"/>
</navigationItem>

4 /。 key="rightBarButtonItem"key="leftBarButtonItem"に変更します

保存して終了します。 Storyboard > Open as > Builder Interfaceを右クリック

5
SLyHuy

私はまったく同じ問題を抱えていました。メインのビューコントローラーにナビゲーションバーがないように見えましたが、ありました。

最終的に、最初にナビゲーションビューコントローラーをクリックすると、メインビューコントローラーのナビゲーションバーが表示されることを発見しました。ナビゲーションバーにボタンバー項目を配置しましたが、それを削除しました(ナビゲーションバーで画像を有効にするために一時的に必要でした)。次に、Images.xcassetsから作成したメニュー画像をメインビューコントローラーのナビゲーションバーにドラッグして、正しいボタンバー項目を作成することができました。画像を見つけて使用するには、右側の[ユーティリティ]セクションで[メディアライブラリ]アイコンを選択するだけです。次に、関連するmyviewcontroller.hファイルでsidebarButton参照アウトレットを設定します。これは、コントロールキーを押しながらナビゲーションバーのメニュー画像を選択し、アシスタントエディターの分割画面モードを使用して、関連するviewcontroller.hファイルのsidebarButtonプロパティにドラッグすることですばやく実行できます。

アプリの他のビューコントローラー(写真およびマップビューコントローラーに似ています)では、ビューコントローラーに、ビューコントローラーの属性セクション(ストーリーボードユーティリティ)のトップバーに半透明のナビゲーションバー設定を設定する必要がありました。メインビューコントローラーからの同じナビゲーションバーが表示されました。また、同様にメニューイメージボタンバーアイテムを作成し、*。hファイルにsidebarButton参照アウトレットを設定する必要がありました。 Yuは、ナビゲーションバーのメニュー画像を選択し、参照アウトレット(+)記号を選択して、Ctrlキーを押しながらビューコントローラーの黄色の丸いアイコンにドラッグすることで、これをすばやく行うことができます。

手順に何か欠けているかどうかはわかりませんが、これでうまくいきました。

2
sirhcmcd

コードで左側のボタンを追加することもできます。

NSMutableArray *leftBtns = [[NSMutableArray alloc] init];

UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"LeftButton"] style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonPressed)];
[leftBtns addObject:leftBtn];

[self.navigationItem setLeftBarButtonItems:leftBtns animated:NO];

// 方法

-(void)leftButtonPressed
{
    NSLog(@"Left Button Tapped");
}
1
David Douglas
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];

    [button setImage:[[UIImage imageNamed:@"BtnBack"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
    [button.imageView setTintColor:[UIColor whiteColor]];
    [button addTarget:self action:@selector(buttonClicked:)
     forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc]
                                   initWithCustomView:button];
    self.navigationItem.leftBarButtonItem = buttonItem;
0
saraman