11

アプリの作成を任されていますが、iOS 開発の経験はありません。特に Java、JavaScript、および PHP に関する一般的なプログラミングの知識があります (私はプログラマというよりも Web 開発者です)。私は過去に C、Xcode、その他のさまざまな言語や IDE に手を出しましたが、覚えていることはほとんどありません。

私はApple の Developer Library のチュートリアルに従ってきましたが、言語の段階に差し掛かったあたりで、途方に暮れています。私は Objective-C の基本をゆっくりと学んでいますが、Xcode での開発に関して、いくつかの非常に混乱していることがあります。さまざまなチュートリアルが完全にスキップされたり、何をすべきかを知っていることを暗示したり、単に停止したりするように見えることがあります。私が問題を抱えている部分の直前。

1) ストーリーボード - はいまたはいいえ?

空のアプリケーションから始めてファイルを操作するのと、テンプレート (私の場合はタブ付きアプリケーション) を作成してストーリーボードを操作するのとではどちらがよいでしょうか?

2) ストーリーボードを使用している場合でも、.xib が必要ですか?

ユーザー インターフェイスは、View Controller が実装するグローバル テンプレートに似ていますか?

アプリのタブごとに異なるレイアウトが必要な場合、タブごとに .xib を作成するか、ストーリーボードでコントローラーを編集しますか? ストーリーボードが同じコントローラーの複数のインスタンス/関係を持つことができることを理解するのは正しいですか?

3) ストーリーボードを使用している場合、実装とソース ファイルはどこから入手しますか?

これはおそらくばかげた質問です。File -> New で追加できることはわかっていますが、これらのファイルをビュー コントローラーに関連付ける方法がわかりません。コントローラーをストーリーボードに追加するときにファイルを自動的に作成する方法はありますか?

4

3 に答える 3

2

始めたばかりなので、ストーリーボードを使用する必要があります。これを使用すると、さまざまなビュー コントローラー (基本的にアプリのページ) をコードの外で視覚的にリンクできるからです。たとえば、UITabbedViewController (他のタブのコンテンツを管理する部分) を、さまざまなタブのコンテンツを表すページにリンクできます。基本的に、ストーリーボードには、サブコントローラーとの親子関係にあるタブ付きビューコントローラーがあります。それぞれのインスタンスを 1 つ持つことになります。タブ付きビュー コントローラーは、各タブのコンテンツとコントローラーのインスタンスを管理します。これはStoryboardでもxibでも同じですが、Storyboardの方が接続しやすいです。

カスタム テーブル セルのようなものや、他の制約があるストーリーボードからビュー要素またはコントローラーを分離したい場合には、引き続き .xib(nib) ファイルを使用できます。

ストーリーボードでは、「カスタム クラス」に UITabbedViewController などのサブクラスを入力して、ビジュアル エディターのサイドバーのコントローラー クラスをサブクラス化します。「MyTabbedController」に関連付けられたファイルで、独自のものを実装します。

素晴らしい本:

http://www.barnesandnoble.com/w/beginning-ios-6-development-david-mark/1113216077?ean=9781430245124

幸運を!

于 2013-09-04T06:06:09.230 に答える
2

ストーリーボードは、10 または 20 画面の小さなアプリケーションに適しています。アプリにそれ以上のものが含まれていると、すべてのビュー コントローラーが視覚的に同じように見えるストーリーボード スキーマで迷子になるだけです。

ストーリーボードは使用せず、コントローラーごとに個別の xib ファイルを使用することを好みます。

ストーリーボードを使用する場合、SB に関連しないアプリケーションの他の部分の xib ファイルを作成できます。また、SB に関連するビュー コントローラーのインターフェイスは SB に保存されます。つまり、ここでそれらを設計する必要があります。巨大な絵コンテファイル。これは非常に不快です。

IB を初めて使用する場合は、Auto レイアウトを参照することをお勧めします。もう魔法はありません:)

于 2013-09-04T06:51:29.737 に答える