0

一度やってみましたが、自分自身を十分に明確に説明できていなかったと思います。私は初心者なので、専門用語の不足を許してください。

UItextlabel のテキストからモーダル セグエを介して、その内容を 2 つの回答に計算する 2 番目のビュー コントローラーにデータを渡そうとしています。ああ、それは絵コンテベースのものです!

次のようになります。

(ファーストビューコントローラー)

-(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 から直接読み取られ、Calculate ボタンがトリガーされるたびに実行されます。

次に、2 番目のビューに移動します

- (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

4

1 に答える 1

0

次のようなことを試してください:

ストーリーボードでセグエに名前を付けてください。

最初のビューコントローラーで:

-(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 ファイルで設定したプロパティを使用します。

于 2014-01-10T15:05:32.973 に答える