1

我正在开发一个具有多个视图的应用程序,从一个视图获取数据并将其存储在另一个视图的表中。当一个计算按钮和一个希望将这些标签的数据存储在另一个单元格中的 UITable 中的自己的单元格上的按钮时,我有用数据更新的标签。我目前不知道如何设置我的 UITable 以创建一个新单元格并将数据传递到每次按下验证按钮时该单元格。

4

2 回答 2

0

所以这个想法是你想在按下按钮时将 UILabel 的文本值存储在 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 回答