-1

如何将文本字段数据从 UIView 控制器文本字段传递到单元格中的表格视图标签?我想以某种方式将文本字段数据添加到数组中,以便我可以将返回值的行数设置为数组计数。

我在我的模型中添加了一个 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;
4

2 回答 2

1

您需要熟悉 MVC 设计模式。创建一个包含数组的模型类。当文本字段被修改时,更新数组。如果表视图的视图控制器正在观察相同的模型对象(可能使用 KVO),那么它可以在数组更改时自动更新。

于 2013-01-22T23:49:43.610 回答
0

下面的代码示例只是为了帮助您入门。但我强烈建议您遵循 Ray Wenderlich 网站 (链接) 上的教程,因为您似乎刚刚开始进行 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 开发很有趣,但是遵循一些教程真的可以帮助你快速上手。

于 2013-01-23T16:36:04.253 回答