web-dev-qa-db-ja.com

あるストーリーボードから別のストーリーボードにView Controllerを移動またはコピーします

1つのストーリーボードに複数のUIViewControllersがあります。次に、いくつかのUIViewControllersを別のストーリーボードに移動します。出来ますか?

70

はい、可能です。

  1. コピーするコントローラーを選択します
  2. 押す Command + C
  3. 2番目のストーリーボードファイルを開く
  4. 押す Command + V

注:「IBOutletsはコピー後もそのまま残ります(Xcode 6.3.2で検証済み)。」

137
Rahul Wakade

コピーすることは可能ですが、1つのプロジェクトで両方のストーリーボードを一度に開いてから、コピーして貼り付ける必要があります。

35
AndrewK

Xcode 8では、特にView Controllerを別のストーリーボードに移動する場合は、Cmdで移動するView Controllerを選択し、View Controllerをクリックします。それらを選択したまま、[エディター]タブに移動し、[ストーリーボードにリファクタリング]を選択します。新しいストーリーボードファイルの名前を尋ねられ、Enterキーを押します。

選択したView Controllerを含む新しいストーリーボードファイルが作成されます。 Main.storyboardでは、そのView Controllerの代わりにStoryboard Referenceオブジェクトが表示されます。これは、作成したばかりの新しいストーリーボードへの参照です。

30
Dark Innocence

コピーと貼り付け(Command + C、Command + V)は正常に機能しますが、Xcodeは元の接続を維持しているように見えるため、コンセント接続を解決することを忘れないでください。

4
Lubos Ilcik

コピー/貼り付けは可能ですが、Xcodeのアシスタントエディターを使用して両方のストーリーボードを並べて開いている場合にのみ機能します。

2
Marcos Reboucas

メインストーリーボードにあまりにも多くのシーンがあり、リファクタリングする必要がある同様の状況に至りました。私が最初に持っていたアイデアは、いくつかをマークし、多くの人が示唆するようにコピー&ペーストすることでした。ただし、View Controllerコードへのストーリーボード接続の解決には懸念がありました。よく調べた結果、iOS 9以降、「Storuboardにリファクタリング」するための新しい機能が利用できることがわかりました。ソースストーリーボードで複数のシーンにマークを付けることができ、[エディター]メニューからそのオプションを選択できます。次に、選択したすべてのシーンが古いストーリーボードから抽出され、新しいストーリーボードが作成されます。また、古い/メインのストーリーボード内のシーンへのリンクも作成されます。役に立つtotorialsは次のとおりです。 https://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226https:// www .raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards

この新しい公式ストーリーボードのリファクタリング機能が、この種の問題に対するより良い解決策を提供できることを願っています。

0
Konstantinos

コピー/貼り付けを使用して、インターフェイス要素をXibファイルとStoryboardファイル間で移動できます。

これはもともと私のために働いていませんでした。私は専用のXibからメインストーリーボードにUICollectionViewCellをコピーしようとしました。セルはストーリーボードにコピーされません。

解決策は、ストーリーボードで特定の親要素を選択することでした。 UICollectionViewCellは、ストーリーボードのUICollectionViewの子として貼り付けることができますが、それ以外の場合は貼り付けることができません。

特定のアイテムの貼り付けに問題がある場合は、貼り付けを試みる前に有効な親要素を選択したことを再確認してください。

0
pkamb

カットアンドペーストの使用に失敗した場合は、回避策があります。貼り付けられているファイルにViewControllerがある場合、貼り付けは失敗します。これにより、貼り付けるストーリーボードを選択できなくなります。 XCodeは貼り付けを拒否します。そのため、最初に空のView Controllerをライブラリからストーリーボードにドラッグする必要があります。次に、ストーリーボードでこのviewControllerを選択すると、貼り付けが機能します。貼り付けが完了したら、ダミーのviewControllerを削除できます。もう必要ありません。

0
nishant