0

私はこれを数時間検索して解決しようとしています。私は非常に単純な間違いを犯していることを知っています。それが何であるかはわかりません!

2 つの異なる UITextFields に入力されたテキストを取得し、それらを別の TableViewController のテーブルに入れようとしています。

私の NSLog は、私の addGuestViewController がテキスト入力を受け取っていることを返していますが、それを私の guestlistViewController に転送していません。

guestlistViewController.h

@interface guestlistViewController : UITableViewController {
    NSString *firstnameInput;
    NSString *lastnameInput;
}
@property (nonatomic, retain) NSString *firstnameInput;
@property (nonatomic, retain) NSString *lastnameInput;

@end

guestlistViewController.m

@synthesize firstnameInput;
@synthesize lastnameInput;
NSString *fullname = [NSString stringWithFormat:@"%@ %@", firstnameInput, lastnameInput];

NSArray *array = [[NSArray alloc] initWithObjects: fullname, nil];
NSLog(@"Their name is: "%@", fullname);

addGuestListViewController.h

@interface addGuestViewController : UITableViewController

@property NSString *firstnameInput;
@property NSString *lastnameInput;

@end

addGuestListViewController.m

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    firstnameInput = firstname.text;
    lastnameInput = lastname.text;

    if (textField == firstname) {
        [textField resignFirstResponder];
        [lastname becomeFirstResponder];
    } else if (textField == lastname) {
        [textField resignFirstResponder];
        [self performSegueWithIdentifier:@"done" sender:self];
        NSLog(@"Their name is: %@, %@", firstnameInput, lastnameInput);
    }
    return YES;
}

私がObjective-Cでのプログラミングにかなり慣れていないので、誰かが私が間違っていることを私に知らせることができれば、それは大きな助けになるでしょう.

編集:

セグエがナビゲーションコントローラーを指しているため、問題が発生している可能性があると考えていましたが、よくわかりません。

4

1 に答える 1

0

guestlistViewControllerのプロパティfirstnameInputおよびlastnameInputを設定していません-textFieldShouldReturn:メソッドでは、guestlistViewControllerのプロパティではなく、テキストフィールドの値をaddGuestListViewControllerのプロパティに割り当てています。メソッドprepareForSegue:sender:を実装する必要があり、そのメソッドで、segue.destinationViewControllerを使用してguestlistViewControllerへの参照を取得します。その参照を使用して、そのViewControllerのプロパティの値を設定できます。このようなもの:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     [(guestlistViewController *)[[(UINavigationController *)segue.destinationViewController viewControllers] lastObject] setFirstnameInput:firstnameInput];
     [(guestlistViewController *)[[(UINavigationController *)segue.destinationViewController viewControllers] lastObject] setLastnameInput:lastnameInput];
}
于 2012-10-05T02:03:29.987 に答える