6

私は呼び出しているアプリケーションを作業してpresentModalViewControllerおり、一度終了すると(呼び出しdismissModalViewControllerAnimated:YES)、すぐに呼び出す必要がありますpopToRootViewControllerAnimated

しかし、問題はdismissModalViewControllerAnimated:YES正常に動作していますが、その後は動作popToRootViewControllerAnimatedしません。

コードを以下に示します。

[self.navigationController dismissModalViewControllerAnimated:YES] ;
[self.navigationController popToRootViewControllerAnimated:YES];
4

4 に答える 4

6

次のようなことを試してください:

[self.navigationController dismissModalViewControllerAnimated:YES] ;
[self performSelector:@selector(patchSelector) withObject:nil afterDelay:0.3];


-(void)patchSelector{
  [self.navigationController popToRootViewControllerAnimated:YES]; 
}

それほどきれいではありませんが、うまくいくはずです。

更新: 使用する必要があります

 [self dismissModalViewControllerAnimated:YES];

代わりは

 [self.navigationController dismissModalViewControllerAnimated:YES] ;

モーダルを表示するオブジェクトは、ナビゲーション コントローラーではなくビュー コントローラーです。

于 2010-10-04T06:21:22.110 に答える
2

UIViewControllerのスタックを備えたナビゲーションコントローラーがある場合:

[self dismissModalViewControllerAnimated:YES];
[(UINavigationController*)self.parentViewController popToRootViewControllerAnimated:YES];
//UIViewController *vc = [[UIViewController new] autorelease];
//[(UINavigationController*)self.parentViewController pushViewController:vc animated:YES];

呼び出されたモーダルビューコントローラがnavigationControllerを持っていると仮定します。

于 2011-08-10T14:31:25.203 に答える
0

私は、あなたが電話していないと思います

[self.navigationController popToRootViewControllerAnimated:YES];

ターゲットモーダルViewControllerで。それを確認します。

于 2010-10-04T06:40:26.580 に答える