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


88

Round RectButtonを右側のBarButton Itemの位置にドラッグし、画像をRound RectButtonに設定します。「ナビゲーションアイテムでサポートされていないプレーンスタイル」という警告を除いて、すべて正常に機能します。バーボタンアイテムのスタイルを「ボーダー」に選択しても、警告が表示されます。Xcode 4.2はどうしたのですか?前もって感謝します!

追伸 丸い長方形のボタンで多くのバーボタンアイテムをカスタマイズしました。Xcode4.2ではバーボタンアイテムに警告が1つだけ表示される場合もあれば、すべてのバーボタンアイテムに警告が表示される場合もあります。


1
私はこれについてブログ投稿を書きました:blog.mosheberman.com/…–
Moshe

ボタンを追加せず、バーボタンアイテムを追加します。これは私の間違いでした。
ダニエルスプリンガー

回答:


135

ストーリーボードファイルを手動で編集してこれらのエラーを削除し、<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の動作は時々微妙なニュアンスを感じ、アウトラインビューに何かがあるはずの空のコンテナはにおいがします。さて、それは今私にとってです。問題のあるノードを削除して再構築すると、最も奇妙な問題が修正されることがあります。

警告:これを試す前にストーリーボードをバックアップしてください...バージョン管理はあなたの友達です...ストーリーボードが完全にホースで接続されてコンパイルされない場合、私は責任を負いません。あなたが得るのは「私はあなたにそう言った!」だけです。私は何度か難しい方法を学びましたが、勤勉なソース管理は私に頭痛の種を救いました。

編集:コードブロックに角かっこを入れる


24
Interface Builderでbarbuttonitemを選択し、右側の属性パネルを開き、barボタンアイテムのスタイルを「Bordered」に変更すると、ストーリーボードファイルに同じ差分が適用されます。だからこれは安全なはずです。
マッシュ2015

そのアドバイス@mashに感謝します、私がそれをした方法は潜在的な痛みと苦しみでひどく練られました。
ハンター-オリオンノワール2015

@ SpaceDog2頭を上げてくれてありがとう。まだアップグレードしていないので、確認を追加できません。とにかくこの方法には本当に注意します。私はそれがこれまで多くの人々を助けたことを知っています。やがて、それが支援を中止するかどうかを確認します。
ハンター-オリオンノワール2015年

5
このソリューションは、Xcode7.1で完全に機能しました。また、ソースコードを直接編集する代わりに、ストーリーボード自体でこれを変更して(スタイルをプレーンからボーダーに切り替える)、style="plain"ストーリーボードのソースコードから手動で削除するのとまったく同じ結果になります。だから、私にはハンターからのこの提案は正当なようです。
Erik van der Neut 2015年

dstudebaの答えもチェックしてください。彼が何を説明したのかさえ知りませんでした。ファイルを手作業で編集することによる苦痛と苦痛を皆に救うかもしれません。ソース管理はあなたの友達です、みんな安全に。;)
ハンター-オリオンノワール2015年

31

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

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

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

ビューの名前を取得するには、検索バーに「シーン」を入れて、そのタグに最初のインスタンスを検索するために戻って検索矢印をクリックして上記navigationItem

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください


1
涼しい。次回は絶対にやってみます。
ハンター-オリオンノワール2015年

13

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


8

ストーリーボードを使用している場合は、警告をクリックすると、問題のあるナビゲーションアイテムが表示されます(問題が2つあり、1つはそこに移動し、もう1つは移動しませんでした)-スタイルを変更してプロジェクトをクリーンアップします。

バーボタンスタイルをプレーンに設定


上記のこの問題では、実際にはどこにも行きませんでした。それがこの特定の問題のこだわりだと思います。アイテムはナビゲーターから完全に欠落していましたが、dstudebaの答えは興味深いアプローチを持っています。ストーリーボードを開くと、人々が別の方法で役立つかどうか興味があります。
ハンター-オリオンノワール2015年

これが最も適切な答えです。スタイルをBorderedに変更しました。
Andrej 2016

6

backBarButtonItem leftBarButtonItemrightBarButtonItemUINavigationItemオブジェクトです。に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以降の場合:

UIBarButtonItemリファレンスの「外観のカスタマイズ」セクションをお読みください


3
多くのビューコントローラーとボタンを備えた継承プロジェクトがあります。どのボタンが警告を引き起こしているのかをXCodeに教えてもらうことができないようです。ヒントはありますか?ありがとう!
Olie

たぶん、View Controllerを実行して、UIBarButtonItenStyleを「検索」します。これは通常、プロパティが誤って設定されている場所です
TimWhiting 2015年

1

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


しかし、UIBarButtonItemのスタイルは私が必要としているものではありません。
lu yuan 2012

1

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

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


0

ストーリーボードのすべてのバーボタンがプレーン以外に設定されていることを確認したら、必ずgitcommitを実行して派生データを削除してください。問題が解決しない理由を理解しようと永遠に費やし、派生データフォルダーを削除すると問題が解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.