0

3 つのビュー コントローラー VC1、VC2、および VC3 があります。

VC2 はサードパーティのライブラリであり、VC1 に表示されます。

その後、VC2 は自分自身を閉じ、コールバックを VC1 に送信し、VC1 は自分自身に VC3 を提示しようとしましたが失敗しました。

VC2 を却下した直後に VC3 を提示する方法はありますか?

-(void)onDismisLoginVC{

    MessageVC *messageVC = [[MessageVC alloc] initWithNibName:@"MessageVC" bundle:nil];
    [self.navigationController presentViewController:messageVC animated:YES completion:NULL];

}

残念ながら^completion、このメソッドへのコールバックを受信したばかりで、VC2 のコードを編集できないため、VC2 で提示されたビューコントローラーを閉じるブロックを使用できません。

4

3 に答える 3

6

これは、Facebook ログイン ビュー コントローラーを閉じるために使用するものです。

UIViewController *theTrick = self.presentingViewController;
UIViewController *toPresent = [self.storyboard instantiateViewControllerWithIdentifier:@"toPresentViewController"];

[self dismissViewControllerAnimated:YES completion:^{
    [theTrick presentViewController:toPresent animated:YES completion:nil];
}];
于 2014-12-04T15:44:16.733 に答える
6

私たちは皆、常にnil完了ブロックを使用していることを知っています...しかし、実際にはいくつかの用途があります。確かに。

[self dismissViewControllerAnimated:YES completion:^{
    //code to be executed with the dismissal is completed
    // for example, presenting a vc or performing a segue
    }];
于 2014-03-01T00:45:31.237 に答える