1

私の登録フォームでは、現在フルスクリーンではない UITableView を使用しており、データソース メソッドをハードコーディングすることでプログラムでセルを追加しています。その頃には、クラス全体が非常に複雑で巨大になりました。 Pastebin リンク

セルはカスタムで、UILabel と UITextfield があります。これで、セルの 1 つにテキストフィールドの代わりにボタンが表示されます。私の意見では、これは全体をより複雑にするでしょう。だから私の考えは、ストーリーボードでテーブルビューの静的機能を使用していました。しかし、これには UITableViewController が必要です。TableView を使用すると、常にフルスクリーンになります。フルスクリーンのTableViewなしで静的機能を使用する方法はありますか??

4

2 に答える 2

2

固定数のセルがある場合は、静的テーブル ビュー コントローラーが適切なオプションです。おっしゃったように、データソース メソッドを実装する代わりに、各入力フィールドを IB アウトレットとして含めることができます。

全幅ではない静的なテーブル ビュー コントローラーが必要な場合は、テーブル ビュー コントローラーをコンテナー ビュー内に埋め込みます。

たとえば、新しいビュー コントローラーを作成し、この新しいビュー コントローラーに必要な幅のコンテナー ビュー オブジェクトを追加してから、静的テーブル ビュー コントローラーをコンテナー ビューに接続します。

静的テーブル ビュー コントローラーは、外側のビュー コントローラーの childViewController になることに注意してください。子View Controller内のtextFieldsへのweakプロパティを使用して、囲んでいるView ControllerからtextFieldsへのアクセスを容易にすることができます。

- (UITextField *)surnameTextField
{
  UITextField *textField;

  // reference childController that is initiated via containerView
  if ([[self.childViewControllers lastObject] isKindOfClass:[NameViewController class]])
  {
    NameViewController *nameVC = [self.childViewControllers lastObject];
    textField = nameVC.surnameTextField;
  }

  return textField;
}
于 2012-12-30T14:44:13.040 に答える
0

UITableViewController を使用する必要はありません。テーブル ビューをコントロール パレットからストーリーボードの UIViewController にドラッグ アンド ドロップするだけです。必要に応じてサイズと位置を調整し、必要な UIViewController に他のコントロールを追加します。

UITableView のプロパティ シートで、コンテンツ タイプを 'Static Cells' に設定し、セルを希望どおりに定義します。

ここに画像の説明を入力

于 2012-12-30T14:46:15.630 に答える