2012-01-26 6 views
0

私はiPhoneアプリの開発を初めて行っています。私は非常にビューとビューコントローラの概念と混同しています。スタックからUIViewControllerをロードする

次のように私の質問は:

私はUIViewControllerを持っています。この例では、これをAとします。

これから、presentModalViewControllerを使用して別のビューコントローラBをロードします。

presentModalViewcontrollerもう1つのビューコントローラを押します。C。このビューコントローラから、最初に表示されたビューコントローラをロードします。。私はこれらのビューがスタックで整理されていることを読んでいます。しかし、私はそれを行う方法については分かりません。

この場合、同じビューコントローラをロードするには

+0

をプッシュするUINavigationControllerを使用する必要があります。 Xcode 4を使用している場合は、ストーリーボードを使用できます - http://developer.apple.com/library/IOs/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/InterfaceBuilder/InterfaceBuilder.html#//apple_ref/doc/uid/ TP40010215-CH6-SW55 – D3vtr0n

答えて

1

C-[UIViewController presentingViewController]メソッドを使用します。

UIViewController *A = C.presentingViewController; 

これはpresentModalViewController:animated:を送ったビューコントローラを返します。 Aに情報を提供したい場合は、代わりに代議員に行くべきですが、上記の方法もあります。あなたの質問は(つまり、モーダルビューコントローラを解任)Aに戻って取得する方法だった場合


、これを使用する:

UIViewController *A = C.presentingViewController; 
[A dismissModalViewControllerAnimated:YES]; 
+0

私は答えの最初の部分ではっきりしていません。 –

+0

私の答えの最初の部分は、メッセージを送ることができるように、 'A'へのポインタを戻す方法を示しています。 –

0

は、私はあなたがビューコントローラCとBをオフにポップする必要があるでしょうねA.に戻るには BとCの上にAを表示すると、上にBをもう一度起動できます。それを知る前に、重なり合った繰り返しのビューが重ねて表示されます。

+0

私はまさに今の状況です。したがって、BとCをここで唯一の解決策にしています。 –

+0

あなたがサークルでラウンドするのを止めるには、はい。 – Darren

+0

Bはpresentmodalviewcontroller、cはviewcontrollerです。だから、私のコードはどうあるべきですか? –

0

あなたはそれはあなたが使用しているのXcodeのバージョンによって異なりUIViewControllers

関連する問題