私は非常に簡単なことで作業していますが、おそらくここに表示されていない小さな間違いを犯していると思います。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"];
}
}