0

免責事項:私が書いたプログラムは動作します。私はそれを理解する助けが必要です。

今日、私はXCodeとObjective-Cを学び始めました。私はJavaの経験が豊富で、これは非常に異なることを認めなければなりません。現在、絵コンテで2つのシーンを扱っている本をフォローしています。Main View Controller SceneFlipside View Controller Scene。_

メインシーンには、HelloWorldというものlabel outletがあります。名前はラベルです。裏側のシーンでは、がありtext outletます。ユーザーがフリップサイドシーンからメインシーンにフリップすると、テキストアウトレットのテキストがラベルアウトレットに適用されます。したがって、裏側にHello StackOverflowと入力してから裏返すと、メインシーンにHelloStackOverflowが表示されます。

これを行うには、フリップを制御し、メインシーンの.mクラスにあるメソッドに移動して、このコードを追加しました。

self.label.text = controller.labelText.text;

誰かがこのコードを説明できますか?labelとlabelTextが私の名前であることを理解しています。そして、テキストはテキストを探しています。しかし、私は自己とコントローラーがどこから来たのかわかりません、そしてそれは本で説明されていません。ありがとうございました。

編集

これは、関数の見出しにコントローラーがある関数の完全なコードです。このメソッドで何が起こっているのかわかりません。どんな説明でも素晴らしいでしょう。

- (void)flipsideViewControllerDidFinish:(HWFlipsideViewController *)controller
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    else
    {
        [self.flipsidePopoverController dismissPopoverAnimated:YES];
        self.flipsidePopoverController = nil;
    }

    self.label.text = controller.labelText.text;    
}
4

2 に答える 2

1

selfはjavathisポインターであるためオブジェクトを指します

textはプロパティであり、 getText()になります

したがって、self.label.textはthis.getLabel()。getText()ですが、text =somethingを設定するのでsetTextです!

=>java-beanスタイルのゲッターとセッター

コントローラはローカル変数である可能性があります。引数としてメソッドに渡されるか、このインスタンスのオブジェクトのメンバー変数です


だからそれは

this.getLabel().setText(controller.getLabelText().getText());

これ=あなたがいるオブジェクトと私が思うメインビュー

コントローラーはフリップビューです

'overwrite'は、ラベルの文字列をコントローラーのテキストフィールド文字列に設定します

于 2012-11-13T22:45:08.200 に答える
0

あなたは、フリップが制御されている状況にいると説明しました。したがって、2番目のコントローラー(という名前controller)のインスタンスがそこで使用可能である必要があります。だからあなたはそれを参照するかもしれません。

selfXonoがコメントですでに述べているようthisに、javaのように現在のオブジェクトへのポインタです。

于 2012-11-13T22:38:13.673 に答える