私はあなたが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をプロパティを示すテキストに追加し、ビューを更新します。
答えはThnxですが、「宣言されていない識別子(MainViewController *)の使用」と表示されています。あなたと同じように私はそれを設定しました。 – Eivind
FlipsideViewController.mファイルの新しい行に、 '#import" MainViewController.h "'を '#import" FlipsideViewController.h "'の直後に置きます。 –
ありがとうございます。もちろん! ;)今は完璧に動作します。 :) – Eivind