如何在tableview中动态添加部分行数?

时间:2015-10-30 10:06:20

标签: ios uiimageview uitextfield nsuserdefaults objective-c-2.0

对于投票的人的注意事项:这个问题在很多天前被关闭了。如果有人发现哪些不必要,请发表评论

我有一些文本值和&存储在一个视图控制器中的uiimage。我在另一个视图控制器中有tableview。我想在tableview中使用nsuserdefaults存储值并使用nsuserdefaults检索然后想要在用户输入时动态添加行?

3 个答案:

答案 0 :(得分:1)

您可以使用textfield中的字符串维护一个Mutable数组。

然后基于array.count,你可以得到数组的大小。

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

也不要忘记重新加载表视图。

答案 1 :(得分:1)

假设您有NSMutableArray这样的数据:

NSMutableArray *cellLabelValues = [[NSMutableArray alloc] initWithObjects: @"1",@"2",@"3",nil];

在你的tableView委托中执行以下操作:

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

您必须有一个按钮或其他东西才能接收用户添加新单元格的意图。让我们假设它调用这个方法:

   -(void) addNewCell:
    {
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Enter New Value"
                                                message:@"  "   
                                               delegate:self 
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
    }

写下UIAlertView的代表。确保您已将ViewController设为UIAlertViewDelegate

 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
        if (buttonIndex == 1) {
            NSString *value = [alertView textFieldAtIndex:0].text;
            [cellLabelValues addObject:value];
            [tableView reloadData];
    }
    }

这里发生的是,用户点击新单元格按钮。它需要用户输入。然后在将表添加到数组后重新加载表。当它到达numberOfRowsInSection委托方法时,它会看到数组现在增加1.因此它将显示一个额外的单元格。

答案 2 :(得分:0)

假设您有两个UIViewControllers ViewController1 UITextFieldsViewController2 UITableView

现在,在ViewController2中声明了NSMutableArray *dataArray;

并在转到ViewController1

之前从ViewController2添加记录

ViewController2 使用此功能

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

这会有所帮助。