1

2 番目の VC をモーダルで表示しようとすると、この警告が表示されます。

Warning: Attempt to present <RCTAddCardViewController: 0x1f5b21e0> on <IRSlidingSplitViewController: 0x1f538140> while a presentation is in progress!

これが私がやっている方法です:

UIViewController *pvc = [self presentingViewController];
[self dismissViewControllerAnimated:YES completion:^{
    RCTAddCardViewController *vc = [[RCTAddCardViewController alloc] initWithNibName:nil bundle:nil];
    [pvc presentViewController:vc animated:YES completion:nil];
}];

最初の VC の却下の完了ハンドラー内に表示されているため、エラー bc が発生することはありません。これをなくす方法を知っている人はいますか?

4

1 に答える 1

1

を呼び出し-dismissViewControllerAnimated:ているためself、 によってビュー コントローラーも提示していた場合self、そのビュー コントローラーは破棄されます (したがって、pvcは引き続き提示されますself)。それが問題でない場合は、完了ブロックが返された後にのみプレゼンテーションの完了がカウントされると思います。

1 つの回避策は、メソッドを作成し、-myPresentViewController:use を使用することです。

[self performSelector:@selector(presentViewController:) withObject:vc afterDelay:0.001]

ブロックの内側

于 2013-04-07T23:04:37.647 に答える