複数のビューを持つアプリケーションに取り組んでおり、あるビューからデータを取得し、別のビューのテーブルに格納しています。私は、計算ボタンとボタンが別のセルのUITable内の独自のセルにそれらのラベルからのデータを保存しようとしているときに、データで更新されるラベルを持っています。UITable を設定して新しいセルを作成し、検証ボタンが押されるたびにそのセルにデータを渡す方法について、現在迷っています。
2 に答える
0
つまり、ボタンを押すだけで UILabels のテキスト値を UITableViewCells に保存したいということですか?
この場合、次のように、ボタンがクリックされるたびに、各テキスト値を要素として NSArray に保存します。
// Given:
// 1.) Your labels are IBOutlets
// 2.) Your labels follow the naming convention label1, label2, label3, etc
// 3.) You have an initialized class variable NSMutableArray *labels
// 4.) NUM_OF_LABELS_IN_VIEW is the number of UILabels in your view
// 5.) myTableView is an outlet to your UITableView, and its delegate and datasource are set to your view controller
-(IBAction)buttonPressed:(id)sender{
self.labels = [[NSMutableArray alloc] init];
for (int i=0; i < NUM_OF_LABELS_IN_VIEW; i++){
[labels addObject:[self valueForKey:[NSString stringWithFormat:@"label%i", i]].text ];
}
[self.myTableView reloadData];
}
また、データ ソース メソッドは次のようになります。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.labels count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:Cellidentifier];
}
cell.textLabel.text = self.labels[indexPath.row];
return cell;
}
UITableView が別のビュー コントローラーにある場合は、表示しているビュー コントローラーNSArray *labels
の @property に を割り当てるだけです。
于 2013-06-17T19:10:41.503 に答える
0
これは基本的な MVC の動作です。テーブル セルは、表示時に UITableView データソース デリゲート メソッドに読み込まれます。あなたの場合、おそらく配列である、ある種のストアからデータをロードする必要があります。
(どこからでも) データを更新する場合は、データ ストア (配列) を更新するだけです。
reloadData
メソッドを使用して (またはビューが表示されるたびに) UITableView をリロードします。
于 2013-06-17T19:03:35.870 に答える