2011-03-02 4 views
1

私は、5-6種類の画面とユーザー情報を格納するデータソースでマルチビューアプリケーションを作りたいと思っています。以前はマルチビューアプリケーションを作ったことがありませんでしたが、どのように起動するかについては良いアイデアがありますが、これを適切にサポートするためにアプリを「構造化する」ための推奨事項をお聞きしたいと思います。最初のiPhoneマルチビューアプリケーション - いくつかのガイダンス

非常に単純なアナロジーは、ウェブサイトで背景色を作ることになるかもしれません...ソリッドカラーの画像を使うか、単に背景色のスタイルを使うことができます。どちらも仕事を終わらせますが、スタイルを使用する方が少し簡単です/より効率的です。

私はちょうど私が右足で始めることを確認したいと思います。 1つのクラスの.m/.hファイルにすべての関数を保持する必要がありますか?さまざまな画面についてのベスト/効率的な方法は何ですか?

Objective-CとXcodeをよく理解したら、他の人を助けようとしています。

答えて

0

多くの場合、アップルのマニュアルはしばしば始めるのに適しています。最初にhereを試してください。これが幸運を助けることを願っています!

0

私はUINavigationControllerを使用しました。私はそれをシングルトンとして作成し、それを静的にアクセスしてコントローラを簡単にプッシュしてポップすることができました(かなり良いチュートリアルhere)。これは非常に軽量であり、すぐにそれに追いつくのに十分なドキュメントです。

私が使用した最良のアプローチは、Three20フレームワークのTTNavigatorです。コントローラに移動しその後

//(In your app delegate) 
//Start up the navigator 
TTNavigator* navigator = [TTNavigator navigator]; 
navigator.persistenceMode = TTNavigatorPersistenceModeTop; 

//Map url's to controllers 
TTURLMap* map = navigator.URLMap; 
[map from:@"*" toViewController:[TTWebController class]]; 
[map from:@"ac://search" toViewController:[SearchViewController class]]; 
[map from:@"ac://results/(initToView:)" toViewController:[ResultsViewController class]]; 

[[TTNavigator navigator] openURLAction:[[TTURLAction actionWithURLPath:@"ac://results/searchResults/"] applyAnimated:YES]]; 

いただきましたもクールなことであるあなたが内部URLを呼び出すことによって、画面の上に新しいビューをプッシュすることができますその強化しUINavigator一言で言えば@ "ac:// results /"を上記のように呼び出すと、マッパーで定義したようにResultViewController( "initToView:")のinitメソッドにparam @ "searchResults"が渡されます

すべてベスト!

+1

IMO、three20のものが有望に見えるが、それはまだ非常にベータ版だが、それはリンゴ優秀なフレームワークの出発/改革だ、それは不十分(りんごと比較して)文書化されていますし、たくさんのオープンなバグが残っています。私にとっては、webdevelopersのためのショートカットのようなリンゴのフレームワークや適切なMVCデザインを学ぶことなく、iPhoneのアプリを開発し始めて、ちょうど私の意見は、結局のところ、Facebookはそれを使用し、Facebookは最もdownlaodedアプリです... – Intentss

1

あなたがiPhone/iPadを初めてお使いの方は、CS193P講義をチェックアウトすることをお勧めします。また、iTunesでも利用できます。 Objective-C/Cocoa TouchでのiPhoneプログラミングの概要と、それがどのように行われているかを紹介しています。それは正しい方向に始まった誰かを得るでしょう。

具体的な質問については、コーディングを開始してください。 6ヶ月であなたが書いたeveythingはcr * pであり、とにかく書き直す必要があることを実感しますが、あなたが書いたことがcr * pだと気付く唯一の方法です...

いくつかの提案、他の誰かがこれを拡張することができると確信しています...

  1. さまざまなビューとビューコントローラー間の対話をコード化する(可能な限り)インタフェースビルダーを使用して)。たとえばTwitterアプリはInterface Builderをまったく使用しません。
  2. IBを使用する場合は、すべてを1つの.xibにダンプしないでください。それらを分解する方法を学びます。 viewcontrollerごとに1つの.xibが必要です。 IB UITabBarControllerまたはIB UINavigationControllerを使用することはありません。これらは初期化され、コードでのみ使用されます。
  3. 絶対にMVC(モデルビューコントローラー)を学んでください。
+0

私はそれに同意します。 –