2011-04-03 12 views
0

Objective-CとiPhoneプログラミングを学ぼうとしていますが、問題が残っています。私はユーティリティアプリケーションを持っています。私はMainViewにテキストを持っていて、それをクリックするとテキストが変わります。簡単で、素晴らしい仕事。しかし、もし私がFlipSideViewの "裏側"にボタンを置いていなくても、それがフロントサイド(MainView)のテキストを変えるようにしたらどうでしょう?どのように意見をまとめて話すのですか?私はいろいろなことを試してみましたが、答えを探しましたが、それを理解できないようです。iPhoneユーティリティアプリケーション、FLipSideViewからMainViewへの接続?

誰かが回答を持っていれば素晴らしいですか、またはチュートリアル/例へのリンクかもしれません。

答えて

1

私はあなたがMainViewControllerで次のメソッドを実装するテンプレートを使用していたとします

- (IBAction)showInfo:(id)sender {  

    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil]; 
    controller.delegate = self; 
... 
} 

あなたはそれがMainViewControllerのインスタンスにFlipSideControllerのデリゲートを設定し、見ることができるように。

- (IBAction)changeTextInMainView 
{ 
    [(MainViewController *)self.delegate changeText]; 
} 

裏面にあなたのボタンをタッチするとトリガーされます。

の方法は、あなたのFlipSideViewControllerにこのような何かを、アクションを置くことであろう。 IBでワイヤリングするだけでなく、ヘッダーにメソッドを追加する必要があります。

次に、あなたのMainViewController

- (void)changeText 
{ 
    self.myLabel.text = @"text changed to this"; 
} 

にこのような何かを実装するだけでなく、ヘッダに、このメソッドを追加します。

もう少し洗練されたアプローチは、ラベルのテキストを任意のビューからアクセス可能なプロパティ(おそらくそれ自身のモデルクラス内)に保存することです。次に、各viewControllerからKey Value Observerをプロパティを示すテキストに追加し、ビューを更新します。

+0

答えはThnxですが、「宣言されていない識別子(MainViewController *)の使用」と表示されています。あなたと同じように私はそれを設定しました。 – Eivind

+0

FlipsideViewController.mファイルの新しい行に、 '#import" MainViewController.h "'を '#import" FlipsideViewController.h "'の直後に置きます。 –

+0

ありがとうございます。もちろん! ;)今は完璧に動作します。 :) – Eivind

関連する問題