如何在表视图中动态添加部分中的行数?
How to add number of rows in section dynamically in tableview?
投反对票的人请注意:这个问题很多天前就被关闭了。如果有人发现哪个不是必需的,请发表评论
我有一些文本字段值和 uiimage 存储在一个视图控制器中。我在另一个视图控制器中有 tableview。我想在表视图中使用 nsuserdefaults 存储值并使用 nsuserdefaults 检索然后想在用户输入时动态添加行?
您可以使用文本字段中的字符串维护一个 Mutable 数组。
然后根据array.count可以得到数组的大小
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return array.count
}
并且不要忘记重新加载 table 视图。
假设您有两个 UIViewControllers
ViewController1
和 UITextFields
以及 ViewController2
和 UITableView
现在在 ViewController2 中声明一个 NSMutableArray *dataArray
;
并在移动到 ViewController2
之前从 ViewController1
添加记录
在ViewController2
使用此功能
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return dataArray.count;
}
会有帮助。
假设您有一个 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];
}
}
这里发生的是,用户点击新单元格按钮。它需要用户输入。然后它将 table 添加到您的数组后重新加载。当它到达 numberOfRowsInSection
委托方法时,它看到数组现在增加了 1。因此它会显示一个额外的单元格。
投反对票的人请注意:这个问题很多天前就被关闭了。如果有人发现哪个不是必需的,请发表评论
我有一些文本字段值和 uiimage 存储在一个视图控制器中。我在另一个视图控制器中有 tableview。我想在表视图中使用 nsuserdefaults 存储值并使用 nsuserdefaults 检索然后想在用户输入时动态添加行?
您可以使用文本字段中的字符串维护一个 Mutable 数组。
然后根据array.count可以得到数组的大小
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return array.count
}
并且不要忘记重新加载 table 视图。
假设您有两个 UIViewControllers
ViewController1
和 UITextFields
以及 ViewController2
和 UITableView
现在在 ViewController2 中声明一个 NSMutableArray *dataArray
;
并在移动到 ViewController2
ViewController1
添加记录
在ViewController2
使用此功能
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return dataArray.count;
}
会有帮助。
假设您有一个 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];
}
}
这里发生的是,用户点击新单元格按钮。它需要用户输入。然后它将 table 添加到您的数组后重新加载。当它到达 numberOfRowsInSection
委托方法时,它看到数组现在增加了 1。因此它会显示一个额外的单元格。