1

こんにちは...私はiPhoneプログラミングが初めてです..誰か助けてください...!! 私は複数のviewControllersを持っています..最初にHomeViewControllerと呼ばれるViewControllerでメソッドを呼び出しました[self presentModalViewController:aboutViewControlleranimated:YES]; aboutButton の IBAction で AboutViewController に移動し、AboutViewController でメソッドを呼び出しました [self presentModalViewController:ContactUsViewController animation:YES]; そのView Controllerともう1つのメソッドに移動するには[self disconnectModalViewControllerAnimated:YES]; HomeViewController に戻ります。

3番目に、ContactUSViewControllerメソッドを呼び出しました[自己dismissModalViewControllerAnimated:YES]; AboutViewControllerに戻ります..そして、ここからHomeViewControllerに直接行きたいです(ContactUsViewController)。しかし、それは機能していません...

どうやってするか...?

ありがとう..

4

1 に答える 1

3

dismissModalViewControllerAnimatedドコによると:

複数のモーダル ビュー コントローラーを連続して提示し、モーダル ビュー コントローラーのスタックを構築する場合、スタック内の下位にあるビュー コントローラーでこのメソッドを呼び出すと、スタック内の直接の子ビュー コントローラーとその子の上にあるすべてのビュー コントローラーが破棄されます。これが発生すると、最上位のビューのみがアニメーション形式で閉じられます。中間のView Controllerはスタックから単純に削除されます。

したがって、 ContactUsViewController から、HomeViewControllerで DismissViewControllerAnimated呼び出す必要があります。そのビュー コントローラーには、 parentViewControllerプロパティを通じてアクセスできます。したがって、ContactUsViewController の DismissAction のコードはのとおりです。

- (IBAction)dismissAction:(id)sender
{
    // get your parent (ie AboutViewController)
    UIViewController * parent = self.parentViewController;

    // get its parent (ie HomeViewController)
    [parent.parentViewController dismissModalViewControllerAnimated:YES];
}

HomeViewControllerに到達するためのより良い方法があるかもしれませんが、View Controller のスタックが浅い場合は、これで問題ないはずです (これを試してみたところ、うまくいきました)。

于 2010-06-24T01:52:20.917 に答える