私はアプリにサイドバーナビゲーションを追加する this チュートリアルに従っています。
指定されたソースコードでは、事前定義されたストーリーボードレイアウトが提供されています。その1つは、「ナビゲーションアイテム」と上部ナビゲーションバーの左側に表示される「バーボタンアイテム」を持つビューです。
アプリでも同じようにしようとしていますが、ボタンアイテムが右側に自動的に表示され続け、ボタンを左側に移動する方法が見つかりません。
チュートリアルで提供されている例では、このアウトレットオプションのleftBarButtonオプションが表示されています。
そして、私のものをチェックすると、次のようになります。
SWRevealViewの動作方法のため、ナビゲーションコントローラーはありません。アプリを実行すると、ボタンが表示され、完全に機能します。問題は、右側にあることだけです。私の見解を例と比較しましたが、違いを見つけることができません。
どんな助けでもありがたいです。
[〜#〜] edit [〜#〜]これは役立つかもしれません。ストーリーボードでは、これは実際の例のようになります。
そして、これは私のように見えます
BarButtonItemをドラッグして、ナビゲーション項目の左側に配置します。
ストーリーボードでそれを管理する方法が見つからなかったため、ビューコントローラーのViewDidLoad関数で次のコードを追加してコード化しました
self.navigationItem.leftBarButtonItem = _sidebarButton;
self.navigationItem.rightBarButtonItem = nil;
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
を右クリック
私はまったく同じ問題を抱えていました。メインのビューコントローラーにナビゲーションバーがないように見えましたが、ありました。
最終的に、最初にナビゲーションビューコントローラーをクリックすると、メインビューコントローラーのナビゲーションバーが表示されることを発見しました。ナビゲーションバーにボタンバー項目を配置しましたが、それを削除しました(ナビゲーションバーで画像を有効にするために一時的に必要でした)。次に、Images.xcassetsから作成したメニュー画像をメインビューコントローラーのナビゲーションバーにドラッグして、正しいボタンバー項目を作成することができました。画像を見つけて使用するには、右側の[ユーティリティ]セクションで[メディアライブラリ]アイコンを選択するだけです。次に、関連するmyviewcontroller.hファイルでsidebarButton参照アウトレットを設定します。これは、コントロールキーを押しながらナビゲーションバーのメニュー画像を選択し、アシスタントエディターの分割画面モードを使用して、関連するviewcontroller.hファイルのsidebarButtonプロパティにドラッグすることですばやく実行できます。
アプリの他のビューコントローラー(写真およびマップビューコントローラーに似ています)では、ビューコントローラーに、ビューコントローラーの属性セクション(ストーリーボードユーティリティ)のトップバーに半透明のナビゲーションバー設定を設定する必要がありました。メインビューコントローラーからの同じナビゲーションバーが表示されました。また、同様にメニューイメージボタンバーアイテムを作成し、*。hファイルにsidebarButton参照アウトレットを設定する必要がありました。 Yuは、ナビゲーションバーのメニュー画像を選択し、参照アウトレット(+)記号を選択して、Ctrlキーを押しながらビューコントローラーの黄色の丸いアイコンにドラッグすることで、これをすばやく行うことができます。
手順に何か欠けているかどうかはわかりませんが、これでうまくいきました。
コードで左側のボタンを追加することもできます。
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");
}
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;