0

私のアプリでは、いくつかのビューがあります。これらのビューのいくつかは、ナビゲーションコントローラーを使用してプッシュおよびポップされます。一部のビューには、セルのそれぞれがビュー自体であるテーブルビューがあるため、セルが選択されると、次のコードが実行されます。

DetailView *detailViewController = [[Detailview alloc] initWithNibName:@"Detailview" bundle:nil];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];

詳細ビューでは、特定のボタンがクリックされたときにこのコードが実行されます(例:戻る/キャンセルボタン):

[self.navigationController popViewControllerAnimated:YES];

私が欲しいのは、詳細ビューからその前のビュー(それを初期化するビュー)にデータを渡すことです。これまでに、「Globals.h」という名前のクラスを実装しました。このクラスには、渡したいデータを配置し、これらのデータ変数に「extern」を使用して、多くのクラスに対してグローバルになるようにしました。これは機能しました。ちゃんと。しかし、これが適切な方法だとは思いません。それを行う他の良い方法はありますか?

前もって感謝します :)

4

1 に答える 1

7

それを解決する簡単な方法の1つは次のとおりです。

DetailView *detailViewController = [[Detailview alloc] initWithNibName:@"Detailview" bundle:nil];
detailViewController.controller = self;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];

次に、詳細ビューで:

self.controller.data = data;
[self.navigationController popViewControllerAnimated:YES];

プロパティの作成方法を知っているといいのですが、そうでない場合はコメントをください。

于 2011-03-12T12:49:23.200 に答える