2

出発空港と到着空港の2つの静的セルを持つ静的TableViewControllerがあります。どちらも、ユーザーが空港を選択できるようにする別のTableViewControllerにセグエし、元のTVCをオブジェクトを返すデリゲートとして定義します。方法がわからないのは、空港が選択されたときにどのプロパティが設定されているかを特定することです。選択が代理人を介して返されるときの出発空港または到着空港。私が実装を開始したのは、prepareForSegueメソッドを介して設定され、選択が行われたときにデリゲートに返されるAirportListTVCのプロパティです。もっと良い方法はありますか?

4

1 に答える 1

1

新しい UIViewController に情報を渡すのは、一般的に注意が必要です。Interface Builder で自動セグエを使用しても、情報を簡単に渡すことはできません。基本的に、私は2つの方法を提案します(あなたは1つを使用しているように聞こえます):

1) Interface Builder セグエを使用し、prepareForSegue を使用して、新しい UIViewController に必要な情報を渡します。

2)Interface Builder(識別子)でUIViewControllerに名前を付けてから、次のように自分で提示しinstantiateViewControllerWithIdentifierます-この場合はNavigation Controllerを使用して提示します:

UIStoryboard *storyboard = [viewController storyboard];
MyViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MyVC"];
[vc configureWithMyData:myData];
[navigationController pushViewController:vc animated:YES];

とはいえ、自分に合ったものを選ぶケースです。明らかに、コントローラーを完全にコードで作成することもできます。

ここで考慮すべき点がいくつかあります。たとえば、これら 2 つのメソッドにより、新しい UIViewController が実際に異なる時点で初期化/viewDidLoad されます (これが役立つ場合は、これを拡張できます)。

于 2012-07-21T00:23:21.300 に答える