2

UIButtonアプリのルート ビュー コントローラーではないビュー コントローラーを使用しています。ヘッダー ファイルにアウトレットまたはそのアクションをドラッグして作成できません。ルートView Controllerからしかできません。

これには単純な理由がありますか?

4

5 に答える 5

5

ストーリーボードを使用する場合、XCode は最初のビュー コントローラー (ViewController.h および ViewController.m という名前) の .h および .m ファイルのみを作成します。

Interface Builder を使用して追加するビュー コントローラーごとに、ビュー コントローラーをカスタマイズするために、追加のカスタム クラス ファイルを手動で追加する必要があります。

Interface Builder を使用してビュー コントローラーをストーリー ボードに追加したら、次の手順に従います。

  1. XCode のメイン メニューから、[ファイル]、[新規]、[ファイル] の順に選択し、[Objective-C クラス] を選択して [次へ] をクリックします。カスタム クラスに名前を付け、追加したビュー コントローラーの適切なタイプを選択UITableViewControllerします (つまり、テーブル ビュー コントローラーを選択します)。
  2. XCode の Interface Builder 内から、新しいビュー コントローラーを選択し、Identity Inspector タブから、作成したばかりの新しいクラスにクラスを設定します。

UIButtonsその後、CTRL キーを押しながら任意の UI 要素またはその他の UI 要素を新しい .h または .m ファイルにドラッグし、そこにビューのカスタム動作を実装できるはずです。

カスタム クラスを実装するファイルを作成しないと、カスタム クラスでUIViewController拡張しない限りデフォルトの動作しか持たない のようなデフォルトの UI クラスに固執することになります。

通常、View Controller ごとに 1 つの .m および .h ファイルが必要です。

于 2013-05-14T17:02:07.787 に答える
0

そのviewControllerのヘッダーファイルにドラッグしようとしていますか? xibではなくストーリーボードを使用していると思いますか?もう少し詳細が必要だと思います。もしかしてスクリーンショット?

アシスタントのビューが間違っているようです。アシスタント ビューの左上のドロップダウンでこれを変更して、そのビュー コントローラーに一致するヘッダー ファイルにすることができます。しかし、私が言ったように、もっと詳細が必要です。

于 2013-05-14T16:05:01.117 に答える
0

UIButton は、View Controller の一部として定義されているアウトレットに接続できます。

そのアウトレットもプロパティにする場合は、そのボタンを公開して、他のView Controllerが設定/取得/クエリなどに使用できるようにすることができます。この後者のことは、ボタンをホストするView Controllerがメモリに存在する場合にのみ機能します(少なくとも最初は、ボタンが表示されているView Controllerが最初のコントローラーが表示されているのと同時に表示されないと仮定すると、そうではありません) .

于 2013-05-14T16:05:53.983 に答える
0

はい、単純な理由がありますが、十分な情報を提供していないため、その単純な理由が何であるかを正確に言うのは難しいです. 基本的には、View Controller がどのように機能し、ストーリーボードからどのようにロード/インスタンス化されるかがすべてになります。短いバージョン:

  • 同じ「シーン」内のオブジェクト間でのみアウトレット/アクションを作成できます。

  • アウトレット / アクションは複雑です。コードに対応する IBOutlet / IBAction がある場合にのみ作成できます。Xcode は、アウトレット / アクション作成プロセスの一部としてそれを作成するのに役立ちますが、これは、コード内の IBOutlet / IBAction と、ペン先 / ストーリーボード内のアウトレット / アクションの 2 つがあるという事実を覆い隠すだけです。

ニブが実際にどのように機能するかについての私の本の章を読むと、さらに助けになるかもしれません。

http://www.apeth.com/iOSBook/ch07.html#_nib_loading_and_file_8217_s_owner

これはストーリーボードにも同様に当てはまります。ストーリーボードは事実上、複数のペン先を 1 つのファイルに結合する方法にすぎません。ただし、オブジェクト間でドラッグできる別の種類のもの、つまりリレーションシップまたはセグエがあるため、ストーリーボードはいくつかの複雑さを追加します (これらのいずれかを誤って作成している可能性があります)。

http://www.apeth.com/iOSBook/ch19.html#_storyboards

于 2013-05-14T16:06:18.137 に答える