推送一个字符串并在UITextField中显示

时间:2013-05-20 03:33:18

标签: objective-c uitableview uitextfield uisplitviewcontroller

我正在做一个小应用程序,我正在使用UISplitVIewController,我正在尝试将UITable单元格文本推送到详细视图并将其显示在UITextField中。当我使用NSLog测试它时,我设法很好地推送字符串但是当我应用于UITextField时,它不显示不确定为什么我的方法:(我使用故事板这样做)

-(void)pushModuleName:(NSString*)moduleName
{
    self.Lv4ModuleTitleTextField.text = moduleName;
    NSLog(@"name pushed%@",moduleName);
}

不确定为什么这不起作用。

[UPDATE]

UITableViewController.m(调用方法的地方)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *selectedModule = [NSString stringWithFormat:@"%@",[_numberOfRows objectAtIndex:indexPath.row]];

    Lv4GradeViewController *lv4 = [[Lv4GradeViewController alloc] initWithNibName:nil bundle:nil];
    [lv4 pushModuleName:selectedModule];

}

2 个答案:

答案 0 :(得分:2)

您正在使用以下代码创建Lv4GradeViewController的新实例,但没有包含文本字段的XIB文件:

Lv4GradeViewController *lv4 = [[Lv4GradeViewController alloc] initWithNibName:nil bundle:nil];

我建议您使用storyboard instantiateViewControllerWithIdentifier方法实例化Lv4GradeViewController:

Lv4GradeViewController *lv4 = [self.storyboard instantiateViewControllerWithIdentifier:@"IdentifierName"];

请记住在故事板中设置Lv4GradeViewController的故事板ID与 IdentifierName 相同。

Set the storyboard ID of the view controller

答案 1 :(得分:1)

问题是你没有获得对屏幕上的Lv4GradeViewController的引用,你正在使用alloc init创建一个新的。拆分视图控制器具有viewControllers数组,索引0处的控制器是主控制器,索引1处的控制器是详细控制器。因此,didSelectRowAtIndexPath方法应如下所示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *selectedModule = [NSString stringWithFormat:@"%@",[_numberOfRows objectAtIndex:indexPath.row]];
    Lv4GradeViewController *lv4 = self.splitViewController.viewControllers[1];
    [lv4 pushModuleName:selectedModule];
}