2

私は最初の実際の iPhone アプリケーションで少し苦労しており、これをどのように構成するべきかについてアドバイスを求めたいと思っていました。UIコンポーネントを作成し、それらをリンクしてアプリケーションフローを作成するという点で、いくつかのベストプラクティスを探しています(ビュー/コントローラーをプログラムで作成するか、Interface Builderを使用するかなど...)。

概要:
アプリケーションの起動時に「ログイン」ビューを表示する必要があります。
--サインアップボタンをクリックすると、「サインアップ」ビューを表示します。

ログインすると... 4 つのビューをロードする TabBarController があります。これらの 4 つのビューは、サブビューをロードする必要があります (マスターと詳細のようなもの)。

私の質問は次のとおりです
。1) このナビゲーション構造をつなぎ合わせる最善の方法は何ですか? 対応するViewControllerで各ビューを.xibとして作成しますか? これらはどのように接着されていますか?

2) ログイン/サインアップ ナビゲーションをどのように処理すればよいですか。開始時に TabBar を表示する必要はありませんが、ユーザーの認証後に必要になります。

ボーナスポイント) この種のものについて文書化されたベストプラクティスはありますか? 私はいくつかの実行可能なコードを一緒にハッキングしてきましたが、非常に道に迷ったので、正しい方法で最初からやり直したいと思っています。

これは少し混乱するかもしれませんが、すべての助けをいただければ幸いです。

編集:タブバーの上のログインビューでは、これを使いました。とてもシンプルです。

LoginViewController *loginViewController = [[LoginViewController alloc] init];
[loginViewController initWithNibName:@"Login" bundle:nil];
[self.tabBarController presentModalViewController:loginViewController アニメーション:YES];
4

3 に答える 3

1

XCodeで新しいタブバーベースのアプリケーションを作成すると、ほとんどの場合、希望どおりにセットアップされます。メインのXIBには、個別のXIBファイルから各タブのビューが読み込まれます。タブごとに1つのXIBがあります。タイプを変更したりタブを追加したりするときは、タブバーを備えたXIBと、ビューの作成に使用するXIBの両方で適切なViewControllerタイプを指定する必要があることに注意してください。

ログインビューに関しては、一般的なアプローチは上記のようにタブバーを使用することですが、アプリデリゲートのapplicationDidFinishLaunchingメソッドは、ログイン画面を表示するモーダルビューコントローラーを提示します。モーダルコントローラは、タブバーとその他すべてが完了するまで非表示にし、その後、閉じることができます。

于 2009-05-06T07:04:57.303 に答える
0

私の意見では、単一の nib ファイルに適しているのは、Cocoa プログラミングの例と非常に単純なアプリケーションだけです。それ以外の場合は、インターフェイス コンポーネントを複数のペン先に分散する必要があります。これは、各ニブがより小さく、メモリにロードされると、必要に応じてそれらのコンポーネントのみをロードすることを意味します。これにより、アプリケーションのパフォーマンスが向上し、プログラムを論理的に整理して、問題が発生したときにデバッグしやすくなります。

私のタブバー アプリでは、MainWindow.xib を使用してメイン ウィンドウとタブバーを含めていますが、上記の理由から、各タブを個別の nib に分割しています。

Apple は次のガイドラインを提供しています。

nib ファイルを作成するときは、次のガイドラインに留意してください。

遅延読み込みを念頭に置いて nib ファイルを設計してください。すぐに必要なオブジェクトだけを含む nib ファイルをロードすることを計画してください。

Mac OS X アプリケーションのメイン nib ファイルでは、アプリケーション メニュー バーとオプションのアプリケーション デリゲート オブジェクトのみを nib ファイルに保存することを検討してください。アプリケーションの起動後まで使用されないウィンドウやユーザー インターフェイス要素を含めることは避けてください。代わりに、これらのリソースを個別の nib ファイルに配置し、起動後に必要に応じてロードします。

繰り返されるユーザー インターフェイス コンポーネント (ドキュメント ウィンドウなど) を個別の nib ファイルに保存します。

たまにしか使わないウィンドウやメニューの場合は、別の nib ファイルに保存してください。別のnibファイルに保存することで、実際に使用される場合にのみリソースをメモリにロードします。

詳細については、以下をご覧ください。

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4

于 2009-05-05T09:17:04.140 に答える