0

現在、iPhone アプリの設定セクションに取り組んでいますが、設定の各ページに独自のビューと .h + .m がある場合、それは不要なコードとビューがたくさんあることに気付きました。そこで、ユーザーが選択したテーブル ビューの行に応じて変化する 1 種類の詳細ビューのみを使用するという結論に達しました。しかし...私は苦労しています。

セットアップ:

  • メインの設定ビューについては、複数のグループと行を持つグループ化されたテーブル ビューにしたいと考えています。
  • 設定の詳細ビューについても、複数のグループと行を含むグループ化されたテーブル ビューにしたいと考えています (ここが混乱の原因です)。

画像やラベルなどの単純なものは前のビューに依存しているが、グループ化されたテーブル ビュー構造には依存していないことがわかりました。大量のビューや「if」ステートメントなしで、私が望むものを完成させることは可能ですか? どんな種類の助けも高く評価されています。

4

2 に答える 2

1

2 つのことを行う必要があります (設定ビュー コントローラーと詳細ビュー コントローラーがあることを考慮して)...

まず、ユーザーが設定ビュー コントローラーで行を選択したときに、詳細ビュー コントローラーで編集する設定を設定する必要があります。あれは....

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   [self.detailViewCtrl setSetting:[self.settings objectAtIndex:indexPath.row]];
   [self.navigationController pushViewController:self.detailViewCtrl];
}

詳細ビューでは、次のメソッドを変更してテーブルをレンダリングする必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  // ... self.setting で何かをする
}

そして、テーブルをリロードすることを忘れないでください:

- (void)setSetting:(id)newSetting {
  if (設定 != 新しい設定) {
    【設定解除】;
    setting = [newSetting 保持];
    [self.tableView reloadData];
  }
}

これは、次のことを前提としています。

  • 最初のビューには、インスタンス化された「detailViewCtrl」プロパティがあります
  • 最初のビューには、「設定」と呼ばれる設定プロパティの NSArray があります
  • 詳細ビューには「設定」プロパティがあります
  • 詳細View Controllerは、「設定」プロパティをどうするかを知っています
于 2011-03-04T22:41:08.727 に答える
1

はい、もちろん可能です。Apple は基本的に、plist ファイルを介して設定バンドルとその構成を使用してこれを行います。

書きたいのは、その構成と内容を外部ソースからロードする一般的なテーブル ビュー コントローラーです (1 つまたは複数の plist ファイルが非常に適しています)。少なくとも、テーブル ビューが実行するアクション (ユーザーがセルをタップしたときなど) が明確に定義されていて、構成ファイルで簡単にエンコードできる限り、それほど難しいことではありません。たとえば、「この構成で新しいページを開く」や「この値をこのキーの下にユーザーのデフォルトに保存する」などのアクションは簡単に設定できますが、「ユーザーにカメラで写真を撮ってもらい、トリミングさせます」などのアクションは簡単に設定できます。それを自分の好みに合わせて Twitter にアップロードする」というのは難しいです。

于 2011-03-04T22:41:57.477 に答える