0

私は非常に簡単なことで作業していますが、おそらくここに表示されていない小さな間違いを犯していると思います。MVC 間でこれを行って、単に名前を から に転送し、AddViewControllerそれMasterViewControllerを に追加しMasterControllerますUITableView。ただし、プロセスの各ステップまですべてを「NSLogged」にしていますが、基本的には、「名前」に入力されたテキストがメソッドにUITextField渡されていないということです.NSString_aname

また、ある時点で、これは機能していましたが、名前を から に設定するのに問題がありMasterViewControllerましたAddViewController。したがって、誰かがその部分を見て、すべてが適切に設定されていることを確認していただければ、非常に感謝しています.

ざっくり言うとこんな感じです。

MasterViewController.h

@property (nonatomic, strong) AddViewController *addViewController;

MasterViewController.m

- (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];
    }

    cell.textLabel.text = [self.Name setName:name];
    NSLog(@"%@", cell.textLabel.text);

    return cell;

名前.h

- (NSString *)setName:(NSString *)name;

名前.m

- (NSString *)setName:(NSString *)name
{
    [_nameStack addObject:name];

    NSLog(@"Name set to: %@", name);

    return name;
}

AddViewController.m

- (void)viewDidLoad
{

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(finalizeAdditionOfName:)];

    NSUserDefaults *nameDefault = [NSUserDefaults standardUserDefaults];
    nameInput.text = [nameDefault objectForKey:@"Name"];
}

- (IBAction)finalizeAdditionOfName:(id)sender
{
    _name = [[Name alloc] init]
    nameInput.text = _name;
    [_name setName:_aname];
    NSLog(@"Name set to (AddViewController): %@", _aname);
    [self dismissViewControllerAnimated:YES completion:NULL];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([indexPath section] == 0) { // Section 1
        if ([indexPath row] == 0) {
            nameInput.delegate = self;
            [nameInput setEnabled: YES];
            [cell addSubview:nameInput];
            [nameInput becomeFirstResponder]
            nameInput.text = _aname;
            NSUserDefaults *nameDefault = [NSUserDefaults standardUserDefaults];
            [nameDefault setObject:_aname forKey:@"Name"];
    }
}
4

1 に答える 1

0

私のコメントが役に立たない場合は、テキスト フィールドからテーブル ビューにデータを取得する方法を示すサンプル プロジェクトを作成しました。ご不明な点がございましたら、お気軽にお問い合わせください:

https://github.com/MaxGabriel/TextField-TableView-Example

于 2012-11-08T09:00:56.937 に答える