0

モーダルとして呼び出す3つのviewControllerを持つnavigationControllerがあります。

最後のviewControllerに到達したら、モーダルnavigationControllerを閉じてpresentingViewControllerでいくつかのアクションを実行するdoneButtonを押したいと思います。presentingViewControllerは3つの異なるタイプにすることができます。

したがって、最後のviewControllerのdoneActionで、presentingViewControllerが何であるかをテストしたいのですが、presentingViewControllerを要求すると(null)になります。

これは、私の問題を示す NSLogs を使用したテスト コードです。

- (IBAction)doneAction:(id)sender {

    [self dismissViewControllerAnimated:YES completion:^(void){

        NSLog(@"nav     VC count : %u", self.navigationController.viewControllers.count);
        NSLog(@"nav nav VC count : %u", self.navigationController.navigationController.viewControllers.count);
        NSLog(@"presenting     VC: %@", NSStringFromClass(self.presentingViewController.class));
        NSLog(@"nav            VC: %@", NSStringFromClass(self.navigationController.class));
        NSLog(@"nav presenting VC: %@", NSStringFromClass(self.navigationController.presentingViewController.class));
}

そして出力:

2013-09-25 14:44:40.819 Twinkler[10636:a0b] nav     VC count : 3
2013-09-25 14:44:40.819 Twinkler[10636:a0b] nav nav VC count : 0
2013-09-25 14:44:40.819 Twinkler[10636:a0b] presenting     VC: (null)
2013-09-25 14:44:40.820 Twinkler[10636:a0b] nav            VC: UINavigationController
2013-09-25 14:44:40.820 Twinkler[10636:a0b] nav presenting VC: (null)

利用できない理由を知っている人はいますか?

前もって感謝します。

4

1 に答える 1