我一直在寻找并试图解决这个问题几个小时。我知道我犯了一个非常简单的错误,我只是不知道它是什么!
我正在尝试将输入的文本输入到两个不同的UITextField中,并将它们放入另一个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编程相当新。
编辑:
我在想,因为我的segue指向导航控制器,可能会导致问题,但不确定。
答案 0 :(得分:0)
您没有设置guestlistViewController的属性,firstnameInput和lastnameInput - 在textFieldShouldReturn:方法中,您将文本字段中的值分配给addGuestListViewController的属性,而不是guestlistViewController中的值。您需要实现方法prepareForSegue:sender:,并在该方法中使用segue.destinationViewController获取对guestlistViewController的引用。使用该引用,您可以在该视图控制器中设置属性的值。像这样:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
[(guestlistViewController *)[[(UINavigationController *)segue.destinationViewController viewControllers] lastObject] setFirstnameInput:firstnameInput];
[(guestlistViewController *)[[(UINavigationController *)segue.destinationViewController viewControllers] lastObject] setLastnameInput:lastnameInput];
}