4

私はiPhone開発に不慣れです。ナビゲーションバーを使用しているときに、view2からview1に文字列値を運ぶにはどうすればよいですか。pushviewcontrollerを使用してview1からview2、view3、....に文字列値を運ぶのに問題はありませんが、ナビゲーションバーの[戻る]ボタンを使用して前のビューに戻ると、文字列値を保持できません。この問題を解決するためにあなたの助けが必要です。

前もって感謝します

4

2 に答える 2

3

現在のクラスの参照を次のクラスに渡し、この参照を使用して値を変更すると、このことを簡単に行うことができます。

Like:プッシュされるクラス。

@interface B:UIViewController{
   id delegate;
}
@property (nonatomic,retain) id delegate;
@end

@implementation B
@synthesize delegate;

-(void)methodA{
  [delegate setNewString2:@"Madhup"];
}

@end

Bをプッシュしているクラス:

@interface A:UIViewController{
   NSString *newString;
}
@property (nonatomic,retain)  NSString *newString;
@end


 @implementation A
 @synthesize newString
- (void)method2{
     B *newBObject = .......;
     [newBObject setDelegate:self];
     [self.navigationController pushViewCo.......];
  }
 @end

お役に立てれば。

于 2010-05-25T12:12:29.897 に答える
2

これを行うには複数の方法があります。ここにいくつかあります:

  1. ナビゲーションコントローラーのviewControllersプロパティを介して、ナビゲーションスタック内のすべてのビューコントローラーにアクセスできます。self.navigationController.viewControllers

  2. parentViewControllerプロパティを使用して、前のView Controller(つまり、現在のコントローラーをナビゲーションスタックにプッシュしたもの)にアクセスできます。self.parentViewController

  3. デリゲートパターンを使用できます。この場合、前の(親)ビューコントローラーが現在の(子)コントローラーのデリゲートになります。

  4. 親コントローラーの子コントローラーへの参照(保持)を保持できます。

最初の3つでは、子コントローラーが親コントローラーにデータを渡す責任があります。4番目では、親はデータを解放する前に子からデータを取得します。

于 2010-05-25T11:08:45.850 に答える