私のMainViewController
では、これを介して別のView Controllerを提示します。
MessageViewController *messageController = [[MessageViewController alloc]initWithNibName:nil bundle:nil];
[messageController setModalPresentationStyle:UIModalPresentationFullScreen];
[messageController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:messageController animated:YES completion:nil];
[messageController release];
これにより、View Controller が正しく表示されます。ただし、表示中のビュー コントローラー (この場合は ) に戻ろうとするとMainViewController
、次のコードが機能しません。
if ([self.presentingViewController isKindOfClass:[MainViewController class]])
[(MainViewController *)self.presentingViewController setCurrentViewTag:2];
[self dismissModalViewControllerAnimated:YES];
「if..」条件を削除して、現在のビュー タグを強制的に設定しました。エラーが発生し、表示中のビュー コントローラーは次のように思われますUINavigationController
:
[UINavigationController setCurrentViewTag:]: unrecognized selector sent to instance 0x8352a50
なぜこれが起こっているのか誰にも教えてもらえますか?このコードは以前は機能していましたが、何が変更されて正しく機能しなくなったのかわかりません。
編集
更新されたコードは次のとおりです。
ReaderController *readerController = [[ReaderController alloc]initWithNibName:nil bundle:nil];
[readerController loadWhichViewToShow:2];
[self setDefinesPresentationContext:YES];
[readerController setModalPresentationStyle:UIModalPresentationFullScreen];
[readerController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentViewController:readerController animated:YES completion:nil];
[readerController release];