web-dev-qa-db-ja.com

XcodeストーリーボードのView Controllerのリスト順を変更する

ストーリーボードを使用して最初のアプリケーションを開始したところです。 Xcode 4.5とiOS 6 SDKを使用しています。ドキュメントの概要(ストーリーボードの左側のパネル)にコントローラーがリストされる順序を変更する方法を知りたい。enter image description here

49
Darren

ドキュメントアウトラインで、オレンジ色のView Controllerアイコンをドラッグします。これを行うと、灰色のボックスの間に青い水平の挿入ポイントが表示されます。放すと、View Controllerの灰色のグループボックス全体が再配置されます。

10
obj-D

Xcode 1では、ストーリーボードXMLを開き、特定の「シーン」を「シーン」タグの下の適切な場所に移動するだけです。以上です。順序はドキュメントのアウトラインに対応します。

60
Viktor Kucera

Xcode 5では、ストーリーボードの「ドキュメントアウトライン」にリストされているビューコントローラー/シーンの順序は、ストーリーボードXMLファイルのsceneID属性値の英数字による並べ替えによって決定されるようです。

4.6からXcode 5にアップグレードした後、ドキュメントアウトラインに私のシーンがランダムな順序でリストされているように見えました。 Storyboard XMLファイルを検査しました(ストーリーボードファイルを右クリック-> Open As-> Source Code)が、シーンの順序は正しいです。さらに調査した結果、sceneID属性値が問題であることがわかりました。各sceneID属性を見つけ、値に英数字順にプレフィックスを追加しました。たとえば、ドキュメントアウトラインに表示される最初のシーンでは、sceneID値の前に「1a」、2番目の「1b」、3番目の「1c」などの接頭辞を付けました。私のすべてのシーンでそれを行った後、ドキュメントアウトラインで適切なリストの順序がありました。

SceneID値はおそらく一意の識別/順序付けの目的でのみ使用されるため、変更しても他の予期しない問題が発生しないことを願っています。しかし、Interface Builderでストーリーボードを問題なく使用でき、アプリは正常に機能しているようです。そのため、この問題が私と同じくらいあなたを苛立たせている場合、Appleが適切な解決策を提供するまでこの回避策を検討するかもしれません...最初にバックアップを作成してください!

18
Denton

少なくともXcode 4.6の場合、シーンはストーリーボードxmlに保存されている順序になっています。

そのため、テキストエディタで開いて、好みに応じてタグを並べ替え、Xcodeを起動できます。

8
SonicBison

それがまだあなたにとって意味があるかどうかはわかりません。 xcode 6.1では、ストーリーボードファイルを右クリックし、[開く...]-> [ソースコード]を選択し、セクションの順序を並べ替えるView Controllerの順序を変更できます。不明な理由でView Controllerのアイコンをドラッグアンドドロップして移動することはできませんので、それが唯一の方法です。

4

Xcode 5.1.1では、タグsegueの順序を変更する必要があります。 storyboardsource codeとして開きます(右クリック->別名で開く->ソースコード)

<segue destination="Bdn-Z8-Ql8" kind="relationship" relationship="viewControllers" id="0DS-1d-02F"/>
<segue destination="KY3-Z9-s1u" kind="relationship" relationship="viewControllers" id="u45-Ly-JkB"/>
<segue destination="k72-nP-MyV" kind="relationship" relationship="viewControllers" id="TAj-be-l8p"/>
<segue destination="gcA-x5-8Iw" kind="relationship" relationship="viewControllers" id="B7T-js-1Vs"/>

上記の行の順序を変更すると、ViewControllersの順序が変更されます

3
Thai Tran

View ControllerはTab Bar Controllerに属しているため、ボタンの順序によって画面上のView Controllerの位置ではなく順序が決まります。ボタンをドラッグアンドドロップできるはずです。

0
Cthutu