1

viewWillAppear メソッドに次のコードを設定しました。

- (void)viewWillAppear:(BOOL)animated 
 {  
     //some code of ausregion
     mapView.region = AusRegion;
     mapView.showsUserLocation = NO;
     addressField.text = [NSString stringWithFormat:@""];
     [super viewWillAppear:animated];
 }

私のアプリケーションが最初の画面を起動すると、うまく開きます。これは私のマップ アプリケーションで、ボタン クリック イベントにコードを設定して何らかのアクションを実行します。[例えば。テキストフィールドには現在の住所が入力され、マップは注釈付きで現在の場所にズームインされます]。別のリストビューコントローラーにジャンプして最初の画面に戻ると、- (void)viewWillAppear:(BOOL)animated メソッドが再び空白のテキストフィールド、現在の場所などなしで呼び出されます。以前の変更で画面を保持したい [例えば。テキストフィールドには現在の住所が入力され、マップは注釈付きで現在の場所にズームインします]。リストビューコントローラーから最初の画面に戻った後。

どうすればこれを達成できますか?

編集済み:次のアクションでリストビューコントローラーを呼び出しています

     RootViewController *list =
[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
    [self presentModalViewController:list animated:YES];

そして、RootViewController から戻った後、オーストラリア大陸だけでなく、RootViewController でリスト ビューを取得する前にアクションを実行したため、現在の注釈を含むマップ ビューが必要です。

4

1 に答える 1

3

viewWillAppearの代わりにviewDidLoadを使用してみてください。その場合、そのコードは、ビューが(nibから)ロードされたときにのみ実行され、再表示されるたびに実行されるわけではありません。

于 2011-11-02T08:43:24.833 に答える