web-dev-qa-db-ja.com

カスタマイズされたバーボタンアイテムでの「プレーンスタイルはナビゲーションアイテムではサポートされていません」という警告

Round Rect Buttonを右のBar Button Itemの位置にドラッグし、Round Rect Buttonに画像を設定します。 「ナビゲーションアイテムでプレーンスタイルはサポートされていません」という警告を除き、すべて正常に機能します。 Bar Button Itemのスタイルを "Bordered"に選択しても、まだ警告があります。 Xcode 4.2の問題は何ですか?前もって感謝します!

追伸多くのバーボタンアイテムをRound Rect Buttonでカスタマイズしました。Xcode4.2は、バーボタンアイテムに1つの警告のみを表示することもあれば、すべてのバーボタンアイテムに警告を表示することもあります。

81
lu yuan

ストーリーボードファイルを手動で編集してこれらのエラーを削除し、<navigationItem>要素のバーボタン項目で問題のあるstyle = "plain"エントリを見つけることができました。

変更後:

<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">

に:

<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">

これにより警告がクリアされました...正しいか間違っています。

これは途方もないハックかもしれませんが、より大きな懸念は、私がそれを根本的に引き起こしたり、ドキュメント全体から見えないバーボタン項目を削除したりしなかったことです。これは、すべての要素を1つずつ確認した後、いくつかのナビゲーションバーが空(子なし)であり、コピーアンドペースト(cmd + c | v)の大量の継承で重複(cmd + d)インターフェイスを構築します。ソースの原因は根本的な原因ではありませんでしたが、症状は修正されるドキュメント「アウトラインビュー」にバー項目が表示されないことでした。 Interface Builderの振る舞いは微妙な場合があり、アウトラインビューに何かがあるはずの空のコンテナは臭いです。まあそれは私に今です。問題のあるノードを削除して再構築すると、奇妙な問題が解決する場合があります。

警告:これを試す前にストーリーボードをバックアップしてください...バージョン管理はあなたの友人です...ストーリーボードが完全に使い古されてコンパイルできない場合、私は責任を負いません。あなたが得るすべては「私はあなたにそう言った!」です。苦労を数回学びましたが、熱心なソース管理により頭痛の種がなくなりました。

編集:コードブロックに括弧を入れる

123

警告をクリックして、問題のあるナビゲーションアイテムに移動しない場合は、次の手順を実行します。 (追加されたコメントからより安全な方法でハンターの答えを視覚的に表現)

ファイルブラウザで、ストーリーボードを右クリックし、Open As Source Codeを選択します

enter image description here

ソースコードページで「プレーン」を検索し、ナビゲーションアイテムに添付されているものを見つけます。

enter image description here

ビューの名前を取得するには、検索バーに「シーン」と入力し、後方検索矢印をクリックして、そのタグの最初のインスタンスを検索しますabovenavigationItem

enter image description here

これがシーンの名前です。上記の右クリック方法でストーリーボードビューをInterface Builder - Storyboardに戻し、シーンメニューでシーンを選択し、その中のバー項目を選択できます。

enter image description here

属性インスペクターに移動し、スタイルをPlainからBorderedに変更します

enter image description here

27
dstudeba

ドキュメントアウトラインをざっと見て、プレーンスタイルに関する警告を停止しました。それは私のナビゲーションアイテムを示していて、その2つのバーボタンアイテム内、およびそれらのそれぞれの中にボタンがありました。問題のある設定は、Bar Button Itemにありました。属性インスペクターで、StyleをPlainからDoneに変更すると、警告は消えました。注:XCode 5を使用しています。

13
MarkAurelius

ストーリーボードを使用している場合は、警告をクリックすると、問題のあるナビゲーション項目に移動します(問題のために2つありました。

Bar Button Style set to plain

7
Recycled Steel

backBarButtonItemleftBarButtonItemおよびrightBarButtonItemUINavigationItemオブジェクトです。 styleにはUINavigationItemプロパティがないため、これが警告の理由です。プログラムでbarButtonsを設定する必要があります。

iOS 4:

UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
 [bt setFrame:YourFrame];
 //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
 [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
 UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
 self.navigationItem.leftBarButtonItem=leftButton;

IOS 5以降の場合:

IBarButtonItem reference の「外観のカスタマイズ」セクションをお読みください。

5
Mat

私の場合、それは「プレーン」に設定された逆矢印の画像でした。

エラーメッセージは、ナビゲーションバーのすべての項目を参照しているように見えます。

1
user462990

ナビゲーションバーで、Round rectボタンの代わりにUIBarButtonItemを使用して、Imageを設定してみてください。

1
iOSDev

ストーリーボードのすべてのバーボタンがプレーン以外に設定されていることを確認したら、git commitを実行し、派生データを削除してください。私は、問題がなぜそれ自体を修正しなかったのかを理解しようとして永遠に費やし、派生データフォルダーを削除することでそれを修正しました。

0
Sethmr