0

リストを持つコレクションビューコントローラーがあります。新しいView Controllerでアイテムを開きます:

self.detailController = [_theStoryboard  instantiateViewControllerWithIdentifier:@"DetailController"];
//init data
[self presentViewController:_detailController animated:YES completion:nil];

モーダル ビューが正しく読み込まれます。ただし、このビューを閉じて別のアイテムを開くと、次のエラーが発生します。

*** -[DetailViewController isKindOfClass:]: message sent to deallocated instance 0xb3e2200

デバッグを通じて、viewcontrollers を nslog しました:

NSLog(@"controller:%@", _detailController);
[self presentViewController:_detailController animated:YES completion:nil];

出力:

controller:<DetailViewController: 0xb3e2200> //first item
controller:<DetailViewController: 0xa3d0a00> //second item
//error here, because it attempts to present the view controller at address 0xb3e2200, instead of the second item.

なぜこれが起こっているのかについて誰か提案を提供できますか? これは iPad シミュレーターでのみ発生しますが、何らかの理由で iPhone 版でも意図したとおりに動作します...?

4

1 に答える 1

0

この問題は、_detailController の UIModalPresentationStyle が FullScreen であったことが原因のようです。xCode のバグなのか、これを間違って実装しているのかはわかりませんが、ビューを CurrentContext に変更すると、エラーは発生しなくなりました。

于 2013-04-01T14:02:23.583 に答える