1

これは非常に基本的なことかもしれませんが、どうしたらよいかわからないので、ご回答ありがとうございます...

私はナビゲーションコントローラーを使用しており、現在スタックの2番目のレベルにいます。ここでは、文字列値を設定し、popViewControllerAnimatedを使用してスタックの最初のレベルに戻ります。

スタックの2番目のレベルからその文字列値を使用するための最良の解決策は何でしょうか?最初のレベルの値を2番目のレベルで手動で設定しようとしましたが、何か間違ったことをしているに違いありません...

ありがとう!

編集:私はm very new to both objective-c and C in general so iまだ少し混乱しています:(

4

3 に答える 3

1

これは最善の解決策ではありませんが、機能します。

[[self.navigationController.viewControllers objectAtIndex:0] setSmt:@"123"];
[self.navigationController popViewControllerAnimated:YES];

親ビューコントローラの値「smt」が変更されます。

于 2011-03-08T17:12:40.907 に答える
1

プログラムにMVCパターンを適用することを検討してください-文字列値をグローバルにアクセス可能な別のストレージクラスに格納します(単純な場合は、アプリケーションデリゲートを使用するか、この目的でシングルトンオブジェクトを作成できます)。次に、第2レベルのコントローラーでストレージに値を設定し、第1レベルでストレージから値を取得します。

于 2009-12-11T10:16:30.013 に答える
1

デリゲート パターンを使用する方がよいのではないでしょうか。最上位のビューを第 2 レベルのビューのデリゲートとして定義できます。スタックにプッシュする前に、第 2 レベルのコントローラーのデリゲート プロパティを設定します。

文字列が選択されたら、第 2 レベルのコントローラーをポップする前に、その文字列を引数としてデリゲート メソッドを呼び出します。

その利点は、同じ第 2 レベルのコントローラーのインスタンスが複数ある場合でも機能することです (たとえば、タブ付きインターフェイスで)。

于 2010-01-29T23:17:30.350 に答える