在 TableView 中添加行
所以我有两个视图,第一个有我的 TableView,第二个有我的 TextField,我想在我的 TableView 中添加一行,其中包含 TextField 中的文本。
目前我可以添加行,
[myTableView addObject:@"Test 1"];
[myTableView addObject:@"Test 2"];
[myTableView addObject:@"Test 3"];
感谢您的帮助!
- (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] autorelease];
}
NSString *cellValue = [myTableView objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [myTableView count];
}
So I have two views, the first have my TableView and the second have my TextField and I want to add a row in my TableView with the text in my TextField.
For the moment I can just add row with
[myTableView addObject:@"Test 1"];
[myTableView addObject:@"Test 2"];
[myTableView addObject:@"Test 3"];
Thanks for your help!
- (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] autorelease];
}
NSString *cellValue = [myTableView objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [myTableView count];
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不确定你的问题到底是什么,但我认为如果你向我们展示你的表视图委托的
-tableView:numberOfRowsInSection:
和-tableView:cellForRowAtIndexPath:
,情况会更清楚代码>方法。这些是您将更改表视图行为的关键点,这也是您的答案可能开始的地方。好的。这有点令人困惑——看起来
myTableView
是一个NSArray
?通常,具有类似名称的变量应该是指向表视图的指针。但UITableView
既没有-addObject:
方法,也没有-count
方法。如果是这样的话,看起来你很好(尽管我真的认为你应该重命名该数组)。您应该在 UITableView 上调用
-reload*
方法之一,让它知道数据已更改。最简单的是,但只需多做一点工作,您就可以使用
-reloadSections:withRowAnimation:
获得更精美的结果。如果这不能回答问题,那么我不确定问题是什么。 :)
I'm not sure exactly what your question is here but I think it will be much clearer if you show us your table view delegate's
-tableView:numberOfRowsInSection:
and-tableView:cellForRowAtIndexPath:
methods. These are the key points where you'll make changes to your table view's behavior, and this is where your answer is likely to start.Okay. This is a little confusing -- it looks like
myTableView
is anNSArray
? Normally a variable with a name like that would be expected to be a pointer to a table view. ButUITableView
has neither an-addObject:
method nor a-count
method.If that is the case, it looks like you're good (though I really think you should rename that array). You should call one of the
-reload*
methods on your UITableView to let it know that the data has changed. The simplest isbut with a little more work you can get fancier results with
-reloadSections:withRowAnimation:
.If this doesn't answer the question, then I'm not sure what the question is. :)
将
UITextFieldDelegate
添加到您的头文件中,它现在应该像这样:我们简单地做的是,通过使用委托,让您的 ViewController 识别通过您的 TextField 执行的操作。为了告诉 textField 它是谁的委托,您必须在 ViewController 的 viewDidLoad 方法中编写以下内容:
因此,我们必须实现该功能,如果用户完成编辑,则添加新文本:
下面列出了委托的更多方法:
http://developer.apple.com/库/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html
add to your header file the
UITextFieldDelegate
it should like now like:What we simply do is, that we make your ViewController recognizing actions that are performed with your TextField, by using the delegate. In order to tell the textField, whose delegate it is, you have to write for example in the viewDidLoad-method of your ViewController:
So we have to implement the function, that if the user is done with editing, the new text is added:
Further methods of the delegate are listed below:
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html