2010-08-16 81 views
0

所以我有两个视图,第一个有我的TableView,第二个有我的TextField,我想用我的TextField中的文本在我的TableView中添加一行。在TableView中添加行

目前我可以只添加一行

[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]; 

}

回答

1

我不知道你的问题在这里到底是什么,但我认为这将是更清楚,如果你告诉我们,你的表视图委托的-tableView:numberOfRowsInSection:-tableView:cellForRowAtIndexPath:方法。这些是您要对表格视图的行为进行更改的关键点,这就是您的答案可能开始的地方。


好的。这有点令人困惑 - 它看起来像myTableViewNSArray?通常情况下,具有类似名称的变量应该是指向表视图的指针。但是UITableView既没有-addObject:方法也没有-count方法。

如果是这样,它看起来像你很好(虽然我真的认为你应该重新命名该数组)。您应该调用UITableView上的-reload*方法之一,让它知道数据已更改。最简单的是

[ptrToTableView reloadData]; 

但有一点更多的工作,你可以用-reloadSections:withRowAnimation:更大胆的尝试结果。

如果这不能回答这个问题,那么我不确定问题是什么。 :)

+0

奥科克我有添加我的代码 – Alex 2010-08-16 20:06:29

+0

奥科克感谢,但问题是,我的文本字段不与我TABL链接eView如何添加一行? – Alex 2010-08-16 20:30:58

+0

和myTableView是一个NSMutableArray – Alex 2010-08-16 20:33:19

0

添加到您的头文件UITextFieldDelegate现在想这样的:

@interface yourViewController : UIViewController <UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate> { 

我们只是做的是,我们让你的ViewController承认与您的文本字段执行的操作,通过使用委托。为了告诉文本框,其代表是,你在你的ViewController的viewDidLoad中的方法来写,例如:

- (void) viewDidLoad 
{ 
    [super viewDidLoad]; 
    textField.delegate = self; 
} 

所以我们要实现的功能,如果用户与编辑完成,新的文本添加:

#pragma mark - 
#pragma mark UITextFieldDelegate Methods 

- (void) textFieldDidEndEditing:(UITextField *)textField 
{ 
    [myTableView addObject:textField.text]; 
    [myTableView reloadData]; 
    textField.text = @""; 
} 

委托的其它方法列举如下: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

相关问题