2013-06-17 2 views
2

Я хочу сделать одно приложение, и оно включает в себя отправку формы. В этом я создаю один новый проект с помощью приложения с одним представлением. В этом firstViewController я нажал кнопку и нажав на нее, он перенаправляется на secondViewController.Передача данных с одного контроллера вида на другой контроллер представления через файл xib

У меня есть форму. и вы хотите взять данные от пользователя и кнопку отправки, я хочу перенаправить это на thirdViewController и вы хотите распечатать данные формы на ThirdViewController.

В firstViewController.m файле я написал

-(IBAction)nextVCButton:(id)sender 
{ 

SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

NSLog(@"name : %@",self.nameTextField.text); 
tempView.fullName = self.nameTextField.text; 
[tempView setFullName:self.fullName]; 
[self.view addSubview:tempView.view]; 

}

В SecondViewController.m файл

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view from its nib. 

NSLog(@"received info %@", [self.fullName description]); 

self.nameLabel.text = [self.fullName description]; 

} 

В журнале я получаю (имя :) значение, но в secondViewController получил info - null.

Я делаю это все, используя файл xib. Без использования раскадровки.

Пожалуйста, помогите мне получить данные этой формы в secondViewController.

Спасибо.

+0

с использованием addsubview для загрузки второго контроллера представления? Серьезно? Тогда почему класс 'UINavigationController' делается? –

+0

http: // stackoverflow.com/questions/5210535/pass-data-between-view-controllers –

+0

Какой способ более предпочтителен для перехода по одному виду на другой по кнопке, и снова с этого контроллера перейдите к третьему контроллеру через кнопку? – Zeel

ответ

2

К сожалению, я не мог получить, почему вы сделали этот код две строки:

tempView.fullName = self.nameTextField.text; 
[tempView setFullName:self.fullName]; 

Вместо Сделать свойство NSString в Second View контроллер .h file

@property (nonatomic,retain) NSString *strFullName; 

и синтезирует в .m file.

@synthesize strFullName; 

Теперь

-(IBAction)nextVCButton:(id)sender 
{ 

SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

NSLog(@"name : %@",self.nameTextField.text); 
tempView.strFullName = self.nameTextField.text; 
[self.view addSubview:tempView.view]; 
} 
+0

Большое спасибо. Я уже сделал то же самое, но из-за этой строки [tempView setFullName: self.fullName]; Я получаю null. Теперь после удаления это работает нормально. Я потратил на это 2 дня. спасибо за ваш ценный ответ. – Zeel

+0

Ваше приветствие. Happy Coding (: –

+0

, который предпочтительнее для перехода по одному виду к другому по кнопке, и снова с этого контроллера перейдите к третьему контроллеру через кнопку? – Zeel

1

Я думаю, вам нужно использовать Navigation controller, если вы хотите, чтобы перейти от одного контроллера представления на другой контроллер представления. хорошо здесь вам нужно сделать свойство - синтезировать iVar «fullName» в ThirdViewController. и сохранить значение в SecondViewController.

1. ThirdViewController.h

@property(nonatomic, retain) NSString *fullName; 

2. ThirdViewController.m

@synthisize fullName; 
dealloc { 
[fullName release]; 
} 

3. SecondViewController.m

-(IBAction)nextVCButton:(id)sender 
{ 

SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

NSLog(@"name : %@",self.nameTextField.text); 
tempView.fullName = self.nameTextField.text; 
[tempView setFullName:self.fullName]; 
[self.view addSubview:tempView.view]; 
} 
+0

используйте форматирование для ответа ... его хорошо для вас и читателя тоже .. –

+0

ya sure, спасибо "Nitin Gohel" – kulss

0

попробовать presentViewController метод вместо addSubview ....

-(IBAction)nextVCButton:(id)sender 
{ 
    SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

    NSLog(@"name : %@",self.nameTextField.text); 
    tempView.strFullName = self.nameTextField.text; 
    [self.view addSubview:tempView.view]; 
    [self presentViewController:tempView animated:YES completion:nil]; 
} 
Смежные вопросы