Передача текста UITextField из одного представления в другое - PullRequest
0 голосов
/ 27 августа 2011

Я определил UITextField на своем firstViewController следующим образом:

// firstViewController.h
IBOutlet UITextField *PickUpAddress
@property (nonatomic, retain) UITextField *PickUpAddress;

//firstViewController.m
@synthesize PickUpAddress;

// Push secondView when the 'Done' keyboard button is pressed
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    if (textField == PickUpAddress) {
        SecondViewController *secondViewController= [[SecondViewController alloc]
                                                       initWithNibName:@"SecondViewController" 
                                                       bundle:nil];
        secondViewController.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:secondViewController animated:YES];
        [secondViewController release];
    }

    return NO;
}

Затем я попытался извлечь его в своем secondViewController во время viewWillAppear

- (void)viewWillAppear:(BOOL)animated {
    BookingViewController *bookingViewController = [[BookingViewController alloc] init];
    NSString *addressString = [[NSString alloc] init];
    addressString = bookingViewController.PickUpAddress.text;
    NSLog(@"addressString is %@", bookingViewController.PickUpAddress.text);
}

Но он возвращается как NULL на моей консоли.Почему это так?Заранее спасибо:)

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

в secondViewController.h add

 NSString *text;

 @property (nonatomic, retain) NSString *text;

 -(void)setTextFromText:(NSString *)fromText;

в secondViewController.m добавить следующее

 - (void)setTextFromText:(NSString *)fromText
 {
     [text release]; 
     [fromText retain];
     text = fromText;
 }

в firstViewController.m до

[self.navigationController pushViewController:secondViewController animated:YES];

добавить

[secondViewContoller setTextFromText:PickUpAddress.text];

Теперь позвольте мне объяснить код.

Вы добавляете строку NSString во второе представление, где мы будем хранить текст из UITextField. Затем мы написали метод, который установит эту NSString из некоторой другой NSString. Прежде чем отправить secondViewController в navigationController, вы просто вызываете этот метод, чтобы установить наш текст из PickUpAddress.text. Надеюсь, что это помогло.

0 голосов
/ 27 августа 2011

Проблема в вашем коде.Вы создаете новый объект bookingViewController, чтобы получить значение textField.Так что это, очевидно, даст NULL.Скорее вы должны использовать одно уникальное объектное приложение для доступа к значению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...