0

私はまったく新しいのでiphone、ユニバーサルアプリを作成しようとしています。

今、私は空のアプリケーションを作成しています。すべてのチュートリアルによると、オプションをチェックすると、iphoneとipadの両方universalで自動作成されます。appdelegates

しかし、私が見ることができるのは。だけone appdelegateです。両方を作成する方法を教えてください。

よろしくお願いします

4

2 に答える 2

3

ユニバーサルアプリケーションには、実際には1つのAppDelegateのみを使用する必要があります。これを使用して、そこで行う一般的なことを共有できます。何のために複数のAppDelegatesが必要ですか?デバイスタイプ(つまり、iPhoneまたはiPad)に固有の処理を行う必要がある場合は、次のような3値式を実行できます。

(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad)?NSLog(@ "iPad"):NSLog(@ "iPhone");

于 2012-08-21T18:43:52.393 に答える
3

Braydenは、複数のアプリデリゲートが必要になることはほとんどないと答えています。デリゲートが通常行うのは、アプリケーションが起動、一時停止、または終了する瞬間を処理することだけです。iPhoneがiOS4.0を実行し、iPadがiOS 3.2を実行していた時代には、iOS 4.0のみがマルチタスクをサポートしていたため、デリゲートで非常に異なるコードが必要になる場合がありました。当時はもう昔のことであり、代理人はおそらくすべてのデバイスで同じように行動する必要があります。

はい、iPhoneとiPadでプログラムの動作が異なる必要がある場合があります。その時点でのイディオムを確認してください。それ以外の場合は、目的のないコードを複製しているだけです。

私の最新のアプリには、iPhoneまたはiPadの特別なチェックはほとんど含まれていません。異なるXIBも使用しません。代わりに、私のカスタムビューはlayoutSubviews、使用可能なスペースを埋めるために実装されます。

とは言うものの、アプリデリゲートを理解すると、それらを異なるものにする必要がある状況に気付くかもしれません。iPhoneとiPadの動作が大きく異なると確信している場合は、次のことを行う必要があります。

  1. 新しいクラスを手動で作成します(できれば既存のAppDelegateクラスから継承します)
  2. で、イディオムに応じて、main.m新しいデリゲートのクラス名をに送信します。UIApplicationMain

「プロジェクトでAppDelegateファイルを作成できますか?」に対するこの回答を参照してください。への変更を確認しますmain.m

于 2012-08-22T00:38:10.273 に答える