私はiPhone開発に不慣れです。ナビゲーションバーを使用しているときに、view2からview1に文字列値を運ぶにはどうすればよいですか。pushviewcontrollerを使用してview1からview2、view3、....に文字列値を運ぶのに問題はありませんが、ナビゲーションバーの[戻る]ボタンを使用して前のビューに戻ると、文字列値を保持できません。この問題を解決するためにあなたの助けが必要です。
前もって感謝します
私はiPhone開発に不慣れです。ナビゲーションバーを使用しているときに、view2からview1に文字列値を運ぶにはどうすればよいですか。pushviewcontrollerを使用してview1からview2、view3、....に文字列値を運ぶのに問題はありませんが、ナビゲーションバーの[戻る]ボタンを使用して前のビューに戻ると、文字列値を保持できません。この問題を解決するためにあなたの助けが必要です。
前もって感謝します
現在のクラスの参照を次のクラスに渡し、この参照を使用して値を変更すると、このことを簡単に行うことができます。
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
お役に立てれば。
これを行うには複数の方法があります。ここにいくつかあります:
ナビゲーションコントローラーのviewControllersプロパティを介して、ナビゲーションスタック内のすべてのビューコントローラーにアクセスできます。self.navigationController.viewControllers
parentViewControllerプロパティを使用して、前のView Controller(つまり、現在のコントローラーをナビゲーションスタックにプッシュしたもの)にアクセスできます。self.parentViewController
デリゲートパターンを使用できます。この場合、前の(親)ビューコントローラーが現在の(子)コントローラーのデリゲートになります。
親コントローラーの子コントローラーへの参照(保持)を保持できます。
最初の3つでは、子コントローラーが親コントローラーにデータを渡す責任があります。4番目では、親はデータを解放する前に子からデータを取得します。