-1

私の問題は、1 つの UIScrollView にすべてを配置する 5 つの UIViewController があることです。各viewcontrollerには、テキストをNSUserDefaultsに保存する必要があるいくつかのUITextFieldがあります。ボタンを使用して実行できますが、ユーザーが次のビューにスクロールするたびに保存するにはどうすればよいですか?(ボタンなしで?)ありがとう..これは、最初のビューコントローラーに使用している作業コードです

- (void)save:(id)sender {
    NSString *a_name1 = [name text];
    NSString *a_address = [address text];
    NSString *a_address2 = [address2 text];
    NSString *a_age = [age text]

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:a_name1 forKey:@"name"];
    [defaults setObject:a_address forKey:@"address"];
    [defaults setObject:a_address2 forKey:@"address2"];
    [defaults setObject:a_age forKey:@"age"];
    [defaults synchronize];
}
4

3 に答える 3

0

デリゲートをスクロール ビューに設定し、contentOffset を実装scrollViewDidEndDecelerating:またはチェックして、ページを変更したかどうかを確認する必要があります。scrollViewDidScroll:

その時点でページを変更したことを検出した場合は、必要なことを何でも行うことができます

于 2013-02-04T16:30:07.573 に答える
0

スクロールビューのプロパティを使用してcontentoffset、現在表示されているビュー (または VC) を見つけ、それを使用してプロセスを実行できます。

これを達成できるスクロールビューデリゲートと一緒に実装します

于 2013-02-04T16:30:08.917 に答える
-1

すべての UITextField に ViewController を作成するのはあまり役に立ちません。あなたの質問を正しく理解していれば、UIViewController インスタンスのみが必要です。viewController インスタンスのビュー プロパティに UITextField-objects を追加します (viewDidLoad メソッドを上書きするか、Interfacebuilder に追加します。展開ターゲット iOS 6 が viewDidDisapear: メソッドを実装し、上記の NSUserDefaults コードでメソッドを上書きする場合。展開の場合iOS 6 より古い場合は、viewDidUnload メソッドを上書きできます。

于 2013-02-04T16:42:38.077 に答える