2012-01-27 9 views
9

iPhoneアプリを完成させたばかりで、ユニバーサルにしたいと思います。私はすでにいくつかの記事を読んだことがありますが、少し古いです(2010年程度)。iPhoneアプリケーションをiPad(ストーリーボード)に移植する方法

私が得たもの:最近作成

  • シンプルなiPhoneアプリ(iOSの5 - ストーリーボード)、3つの画面を持ちます。
  • 私のアプリは、3枚のカードを置いたテーブルを表しています。ユーザは、カードに表示されるテキストを(第2画面上に)入力することができる。
  • プロジェクトを作成したときに「ユニバーサル」をチェックしたので、2つのストーリーボードがあります。その後、私はiPadでやらなければならなかったこと以外は何もしなかった(私が "コンタクトサポート"の電子メールオプションを使ってUIModalPresentationPageSheetを使った行を除いて)。私が達成したいのですがどのよう

:iPadの

  • 同じアプリ:私のアプリケーションは、私は、分割ビューや詳細については、任意の使用を持っていないので簡単です。私はちょうど同じオブジェクトとレイアウトが、より大きく、より良いグラフィック(テーブル、カード、など)をしたい。

偉大な導入レベルの移行を行うため、私はそれが好きです。

どこから始めたらいいかわかりません。 iPadシミュレータを起動すると、白い画面が表示され、それが表示されます。

+0

iPadのストーリーボードを編集するのは良いスタート地点になります。 – esqew

+0

あなたのiPad版では、ストーリーボード全体をやり直してコードを再利用する必要がありますか? もう一度ボタン、ラベル、すべてのUI要素を追加し、現在のメソッドに接続しますか? –

+0

うん、iPhoneとiPadのプラットフォームは非常に、非常にシミュレータです。いくつかの例外を除いて、これを問題なく実行できるはずです。 – esqew

答えて

12

これが完了しました。

ほとんどすべてと同じように、これを行うとわかったらこれはかなり簡単です。

私はUIがサイズまたは以上に変化していない鉱山、(x、y)のような場合のためのプロセスは次のようにまとめることができ座標ことを言うと思います:

  1. すべてのUIを複製iPadのストーリーボードの要素(コピー&ペーストができます)に合わせて位置とサイズを調整します
  2. もう一度すべてのワイヤを再度配線します。
  3. あなたのUIが影響を受けるすべての場所(例:x、y座標)をコード内で確認し、アプリが実行中であるかどうかを特定しますiPhoneやiPad、およびアプリケーション上の任意のローカライズをお持ちの場合は、iPadのストーリーボード
  4. 上の新しいUI要素を更新する必要があります
  5. に応じてコードを分割し、シミュレータ上のテストのためのターゲットを選択して
  6. をそれを試してみます

アプリが実行されているデバイスを特定するには、次のコードを使用します。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    //I'm running on the iPad 
} else { 
    //I'm running on the iPhone 
} 

これだけです。繰り返しますが、私のような単純なケースでは、コードの再利用は絶対的です(100%)。追加する必要がある新しいコードは最小です(基本的にはIF文です)。UIエレメントの複製はコピー&ペースト。

私はこれが他の人にとって有益だと思いますが、これを改善するための推奨事項があれば歓迎されます。

+2

これは、この問題に対する最良のアプローチではありませんか?バグを導入する可能性/ UI要素の更新ミス、物事の誤認などは大規模に見えます。 : – jmc

+0

この回答を見るhttp://stackoverflow.com/questions/8465769/convert-storyboard-from-iphone-to-ipad(これはこの質問のコメントの1つでしたが、非常に隠されています) – jmc

3

iphoneストーリーボードを再利用したい場合は、プロジェクト設定に行きます。 TARGETSタブのInfoには、「メインストーリーボードファイルベース名」と「メインストーリーボードファイルベース名(iPad)」という行があります。 iPad 1を編集して、他のiPadと同じ値にしてください。私の場合、値「MainStoryboard_iPhone」を持つ「メインストーリーボードファイルベース名(iPad)」として編集する必要がありました。

+0

ユニバーサルと完全に動作します(あなたのオートレイアウトが正しい場合) – Toby

4

オープンファインダーでストーリーボードファイル、メイン・iPad.storyboard

内部のXcodeをあなたのiPhone、ストーリーボードをコピーして名前を変更、右ストーリーボードをクリック - >「オープン」 - >「ソースコード」

targetRuntime =「iOS.CocoaTouch」のための

検索し、それtargetRuntime =「iOS.CocoaTouch.iPad」

今すぐにすべてを保存するとXcodeを再開します - > iPadの-ストーリーボードはiPhone・ファイルと同じが含まれていますが、everytingができあなたは自分自身でそれを手配しなければならない。その後

にあなたの「StroryBoardEx-のInfo.plist」ファイルに移動し、「メインnibファイルのベース名(アプリ)の検索:最後のiPadフォーマットはまたからMainStoryboard_iPad.storyboardにコードを変更得るために

"Main-iPad.storyboard"にする

関連する問題