-1

我已经实现了带有文本字段的警报视图代码,当我单击“确定”按钮时,文本字段输入的值存储在字符串格式中作为(str)并且我将该值添加到数组中以便我将数组加载到表视图但是这里的问题是每个时间表视图都包含一个项目,但我想存储多个项目,从警报输入项目并将其保存为数组项目如何实现通过警报视图保存多个数组项目的代码任何人都可以帮助我在 iphone 中解决这个问题.

myAlert = [[UIAlertView alloc] initWithTitle:@"Enter year" 
                                     message:@"alert message" 
                                    delegate:self 
                           cancelButtonTitle:@"Cancel" 
                           otherButtonTitles:@"Ok", nil];
[myAlert addTextFieldWithValue:@"" label:@"entervalue"];     
alertTextField=[myAlert textFieldAtIndex:0];
alertTextField.keyboardType=UIKeyboardTypeAlphabet;
alertTextField.clearsOnBeginEditing=YES;
alertTextField.clearButtonMode=UITextFieldViewModeWhileEditing;
alertTextField.keyboardAppearance=UIKeyboardAppearanceAlert;
[myAlert show];
[myAlert release];


-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
    if ([buttonTitle isEqualToString:@"Ok"]) {

        str = alertTextField.text;

        [savedarray addObject:str];
    }
}
4

3 回答 3

2
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
  NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
  if ([buttonTitle isEqualToString:@"Ok"]) {

    str = alertTextField.text;

    [savedarray addObject:str];
    [self.yourtableview reloadData]; // reload your tableview when add new data in array.
  }
}




- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section        {
return savedarray.count;
 }

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [savedarray objectAtIndex:indexPath.row];    
return cell;
}

希望对你有帮助..

于 2012-05-03T05:01:14.733 回答
0

如果我要求这样的东西:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
 NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
 if ([buttonTitle isEqualToString:@"Ok"]) 
 {
     str = alertTextField.text;
     if([savedarray Count] < yourRequiredItemsCount)
     {
      [savedarray addObject:str];
      alertTextField = @"";
      [alertView show];
     }
     else
     {
      [alertView release];                //Release the Alert here.
     }
 }
}

告诉我是否有帮助!会给你一个替代的溶胶。

于 2012-05-03T04:45:28.560 回答
0

如果您正确分配了 savedarray,那么发布的代码看起来很合理。接下来要检查的是您是否正确使用 savedarray 作为表的数据源。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return savedarray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.textLabel.text = [savedarray objectAtIndex:indexPath.row];    
    return cell;
}

确保设置与 tableview 的委托和数据源相同的视图控制器。

于 2012-05-03T04:50:42.920 回答