如何将textField数据从UIView Controller文本字段传递到单元格中的tableview标签?我想以某种方式将文本字段数据添加到数组,以便我可以设置行数返回值到数组计数。
我在我的模型中添加了一个NSMutable数组。
在我的视图控制器中,我正在实现prepareForSegue方法
if ([segue.identifier isEqualToString:@"Details"]){
MileageDetailViewController * mdv = [segue destinationViewController];
NSString *text;
startTextField.text = text;
mdv.label.text = text;
我尝试了几种不同的方法。我用数组做了这个,并尝试添加一个数组的文本对象,但也没有显示。最后一种方法我尝试使用标签并将textField中的文本添加到tableview标签中。
In the tableView I add this code to grab the text from the viewController.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Reuse"];
UILabel *labe = (UILabel *) [cell viewWithTag:20];
labe.text = label.text;
// Configure the cell...
return cell;
答案 0 :(得分:1)
您需要熟悉MVC设计模式。创建一个包含数组的模型类。修改文本字段后,更新阵列。如果表视图的视图控制器正在观察相同的模型对象(可能使用KVO),那么它可以在数组更改时自动更新。
答案 1 :(得分:0)
下面的代码示例只是为了帮助您入门。但我强烈建议您按照Ray Wenderlich网站(link)上的教程进行操作,因为您似乎只是开始iOS开发。
使用prepareForSegue:
在视图控制器之间传递数据(在代码块中包含注释):
// This will get called before the view appears
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"Details"]) {
// Get destination view controller
MileageDetailViewController *vc = [segue destinationViewController];
// Grab the text field contents and put it into a public property on the new view controller
vc.myText = self.myTextField.text;
// NOTE: myText is a public NSString property on your MileageDetailViewController
// NOTE: self.myTextField is the IBOutlet connected to your Text Field
}
}
现在使用表视图访问控制器中的方法:
// Load the model required for the view controller
- (void)viewDidLoad {
[super viewDidLoad];
// Load your "model" - in this case an array property (called myData) with a single piece of text
// NOTE: myText CANNOT be nil or an exception will occur
self.myData = [[NSArray alloc] initWithObjects: self.myText, nil];
}
// UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [self.myData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// NOTE: You must have set the reuse identifier in Interface Builder for this to work
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Reuse"];
// NOTE: You must have set the tag in Interface Builder for this to work
UILabel *labe = (UILabel *)[cell viewWithTag:20];
labe.text = [self.myData objectAtIndex:indexPath.row];
return cell;
}
希望这会有所帮助; iOS开发很有趣,但是通过一些教程可以帮助您快速上手。