对于投票的人的注意事项:这个问题在很多天前被关闭了。如果有人发现哪些不必要,请发表评论
我有一些文本值和&存储在一个视图控制器中的uiimage。我在另一个视图控制器中有tableview。我想在tableview中使用nsuserdefaults存储值并使用nsuserdefaults检索然后想要在用户输入时动态添加行?
答案 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
UITextFields
和ViewController2
UITableView
现在,在ViewController2中声明了NSMutableArray *dataArray
;
并在转到ViewController1
ViewController2
添加记录
ViewController2
使用此功能
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return dataArray.count;
}
这会有所帮助。