0

デバイスの向きを縦向きから横向きに変更してViewControllerを変更するというAppleの推奨事項に従うようにしています。コードを実行すると、常にエラー メッセージが表示されます。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a nil modal view controller on target.

私は問題が何であるかを理解できません。実行が終了する部分 (PortraitViewController の一部) は次のとおりです。

- (void)updateLandscapeView
{

UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;

if (UIDeviceOrientationIsLandscape(deviceOrientation) && self.presentedViewController == nil){
    if (!self.resultViewLandscapeViewController){
        [self.storyboard instantiateViewControllerWithIdentifier:@"LandscapeViewController"];
        NSLog(@"LandscapeView initiated"); //this is called when device is turned
    }

        [self presentViewController:self.resultViewLandscapeViewController animated:YES completion:NULL];
//after the code above the execution is interrupted and the error message is thrown

}

else if (deviceOrientation == UIDeviceOrientationPortrait && self.presentedViewController != nil){
        [self dismissViewControllerAnimated:YES completion:NULL];
}
}
4

1 に答える 1

1

作成後にビューコントローラーを実際に設定するわけではありません。

self.resultViewLandscapeViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LandscapeViewController"];

それを指摘してくれた@Arbiturに感謝します

于 2013-08-14T21:39:22.687 に答える