iPhoneアプリの開発についてです。
UINavigationControllerのルートに紐づけられたBookMarkViewControllerというビューがあります。
このBookMarkViewControllerはテーブルビューで、
(1)
BookMarkViewController *nextDir = [[BookMarkViewController alloc] init];
[self.navigationController pushViewController:nextDir animated:YES];
上記のようなコードで、次々と画面遷移していきます。
また、BookMarkViewControllerには、
(2)
BookMarkViewController *move = [[BookMarkViewController alloc] init];
move.isMove = YES;
UINavigationController *nav = [self.storyboard instantiateViewControllerWithIdentifier:@"BookMarkView"];
[nav setViewControllers:[NSArray arrayWithObjects:move, nil]];
[self presentViewController:nav animated:YES completion:nil];
上記のような内容のメソッドがあり、次々と画面遷移することのできる新たなUINavigationControllerをモーダル表現で表示します。
画面遷移する前のBookMarkViewControllerでは、上記のコードでうまくモーダルがでるのですが、(1)のメソッドを実行し新たに作り遷移したBookMarkViewControllerではなぜか、
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target <BookMarkViewController: 0x11822e070>.'
というエラーが吐き出されうまくいきません。
(2)のメソッドで「nav」を生成した直後にnav.viewControllersをNSLogしてみたのですが、nullがかえされてしまいました。(成功した例では<BookMarkViewController ○○○>と、正常に表示されました)
誰かわかる方ご指摘お願いします。
お礼
ありがとうございます。