iPhone-以前のModalViewControllerAnimatedの却下:はい、新しいModalViewControllerAnimatedを入力:はい - 失敗
-
24-10-2019 - |
質問
モーダルビューコントローラーをポップするメインウィンドウがあります。このモーダルビューコントローラーで行われると、メインウィンドウに戻り、却下します。次に、メインウィンドウは、Animated = YESを使用して新しいモーダルビューコントローラーをポップします。
問題は、最初のModalViewController内で行われる解雇コールが両方に適用され、SecondControllerが表示されないことです。
親の呼び出しの前後に最初の解雇を行うと、何も変更されません。最初の却下がanimate = noで設定されている場合、すべてが正常に機能します。しかし、アニメーションが必要です。
main.m
- (void) entry {
FirstController *nextWindow = [[FirstController alloc] initWithNibName:@"theNIB" bundle:nil];
nextWindow.caller = self;
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
[self.navigationController presentModalViewController:navController animated:YES];
[nextWindow release];
[navController release];
}
- (void) thingsDoneInFirstModalController:(OBJECT)returnValue retval2:(OBJECT2)returnValue2 {
[self display2ndController];
}
- (void) display2ndController {
SecondController *nextWindow;
nextWindow = [[SecondController alloc] initWithNibName:@"NIB2" bundle:nil];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow];
[self.navigationController presentModalViewController:navController animated:YES];
[navController release];
[nextWindow release];
}
1st ModalViewController.M
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.navigationController dismissModalViewControllerAnimated:YES];
[self.caller thingsDoneInFirstModalController:theResult retval2:someMoreResult];
}
私は何をすることができますか?視界で何もキャッチしたくない....恥ずかしい...
同じナビゲーションコントローラーから呼び出されないため、なぜ解雇されたコリドが却下するのですか?
解決
その理由は、おそらくアニメーションを却下するときです。を使用して2番目のモーダルウィンドウを表示してみてください performSelector:withObject:afterDelay:
, 、から継承された方法 NSObject
. 。参照 ここ.
所属していません StackOverflow