0

モーダル ビュー コントローラーをポップするメイン ウィンドウがあります。このモーダル ビュー コントローラーで実行すると、メイン ウィンドウに戻り、自分自身を閉じます。次に、メイン ウィンドウは、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];
}

どうすればいいですか?視界に何も捉えたくない....消えて...

同じナビゲーションコントローラーから呼び出されないため、なぜ却下が衝突するのですか?

4

1 に答える 1

2

その理由は、おそらくそれを閉じるときのアニメーションです。performSelector:withObject:afterDelay:から継承されたメソッドであるを使用して、2 番目のモーダル ウィンドウを表示してみてくださいNSObjectここを参照してください。

于 2011-01-24T23:21:50.870 に答える