2013-06-30 3 views
0

Я пробовал один раз, но я думаю, что не объяснил себе достаточно ясно. Я новичок, прости меня, мой недостаток жаргона.Передача данных Segue

Я пытаюсь передать данные из текста UItextlabel через modal segue во второй контроллер представления, который вычисляет его содержимое в два ответа. О, должно быть, это раскадровка, основанная на одном!

Это выглядит примерно так:

(FirstView Controller)

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
NSLog(@"prepareForSegue: %@", segue.identifier); 
if 
    ([segue.destinationViewController isKindOfClass:[SampleDelayCalculator2ViewController class]]) 
{ 
    D = d1.text; 
    TT = T1.text; 
    FQ = Fq1.text; 

    NSLog(@"Transfering Data"); 

    //sending information to new view controller with a segue 
    SampleDelayCalculator2ViewController *viewcontrollerB = (SampleDelayCalculator2ViewController*)segue.destinationViewController; 
    viewcontrollerB.d.text=self.D; 
    viewcontrollerB.T.text=self.TT; 
    viewcontrollerB.Fq.text=self.FQ;   
} 
return; 
} 

Это читает прямо из UITextLabels и выполняется каждую кнопку времени Рассчитать срабатывает.

Затем он идет ко второму View

- (void)viewDidLoad 
{    
[self calculate]; 
[super viewDidLoad]; 
} 



-(void) calculate{ 


//asigning the values from prepare for segue method to floats 

NSLog(@"Value of string is %@", T.text); 
Tf = ([T.text floatValue]); 
Fqf = ([Fq.text floatValue]); 
df = ([d.text floatValue]); 
NSLog(@"Value of string is %f", Tf); 
... 

А потом он продолжает что-то другое. Моя основная проблема заключается в том, что всякий раз, когда печатается T.text или Tf, отображается nill или 0.00000, которые я, очевидно, не помещал в UITextLabel. Как я могу решить эту проблему?

Я попытался реализовать вычисление в ViewDidAppear, но это ничего не изменило.

Я надеюсь, что я сделал себе ясно: D

+0

Если вы хотите узнать больше о коде, чтобы понять это, просто спросите! – graceinspace

ответ

0

Попробуйте что-то вроде этого:

Будьте уверены, чтобы дать вашему SEGUE имя в раскадровке.

В своем первом ViewController:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier]isEqualToString:@"segueToHomeDetails"]) { 
     SampleDelayCalculator2ViewController *viewcontrollerB = (SampleDelayCalculator2ViewController*)segue.destinationViewController; 

     viewcontrollerB.d = d1.text; // don't use viewcontrollerB.d.text it won't set the text in the next controller 
     viewcontrollerB.T = T1.text; 
     viewcontrollerB.Fq = Fq1.text; 
    } 
} 

В Вашем 2 ViewController: Используйте свойства, которые вы установили в вашем файле 2 viewcontroller.h.

Смежные вопросы