当从另一个文件中选择子视图UITableView行时,如何在ViewController中更改UITextField的文本?

时间:2013-09-20 12:48:42

标签: objective-c xcode ios6

我正在添加子视图(带有来自另一个文件(AutocompleteTable.h和.m)的委托的UITableView)到名为AddViewController的ViewController:

AddViewController.h
#import "AutocompleteTable.h"

@property (weak, nonatomic) IBOutlet UITextField *itemName;


AddViewController.m

@interface AddViewController ()
{
    AutocompleteTable *autocompleteDelegate;
}
@end

@implementation AddViewController

...

- (void)viewDidLoad
{
    [super viewDidLoad];

    autocompleteDelegate = [[AutocompleteTable alloc] init];
    ...
    autocompleteTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 88, 320, 120) style:UITableViewStylePlain];
    autocompleteTable.delegate = (id)autocompleteDelegate;
    autocompleteTable.dataSource = (id)autocompleteDelegate;
    ...
    [self.view addSubview:autocompleteTable];
}

并在AutocompleteTable.m中我试图使用didSelectRowAtIndexPath将AddViewController的itemName.text设置为选定行的文本但不起作用:

AutocompleteTable.h
#import "AddViewController.h"


AutocompleteTable.m

@interface AutocompleteTable()
{
    AddViewController *addController;
}

@end

@implementation AutocompleteTable

...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];


    addController = [[AddViewController alloc] init];
    addController.itemName.text = selectedCell.textLabel.text;


    self.hidden = YES;
}

有什么问题?

1 个答案:

答案 0 :(得分:0)

这一行:

addController = [[AddViewController alloc] init];

每次选择单元格时,您实际上都在创建AddViewController的新实例。尝试获取实际在屏幕上的文本字段的引用,然后改变它。