0

回転時に新しい UIView をプッシュする際にまだ問題があります。私が見つけた例に従っています。めちゃくちゃ近いです。この時点でエラーが発生し、次のエラーが発生します。

'NSInvalidArgumentException'、理由: 'アプリケーションがターゲットに nil モーダル ビュー コントローラーを提示しようとしました。'

controller nvs = [self.storyboard instantiateViewControllerWithIdentifier:@"LandscapeView"];
[self.navigationController pushViewController:nvs animated:YES]

明らかに、ここで何かが欠けています。私が達成しようとしているのは、ユーザーがデバイスを回転させたときにスタックにプッシュされる別のビューです。カレンダーのように。

ステートメント全体

LandscapeViewController * nvs;

- (void)updateLandscapeView { UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;

if (UIDeviceOrientationIsLandscape(deviceOrientation) && self.presentedViewController == nil)

{
    if (!self.landscapeViewController)
        //self.landscapeViewController = [[LandscapeViewController alloc] initWithNibName:@"LandscapeView" bundle:nil];

        //Set the location of the where you want the view to go i.e. the next view controller
        nvs = [self.storyboard instantiateViewControllerWithIdentifier:@"LandscapeView"];
        //Push the view onto the device
        [self.navigationController pushViewController:nvs animated:YES];

    if ([self respondsToSelector:@selector(presentViewController:animated:completion:)])
        [self presentViewController:self.landscapeViewController animated:YES completion:NULL];
    else
        [self presentModalViewController:self.landscapeViewController animated:YES];
}
else if (deviceOrientation == UIDeviceOrientationPortrait && self.presentedViewController != nil)
{
    if ([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)])
        [self dismissViewControllerAnimated:YES completion:NULL];
    else
        [self dismissModalViewControllerAnimated:YES];
}    

}

前もって感謝します!ジェレミー

4

1 に答える 1

0

とった。ステートメントの外部で設定された nvs をプッシュする代わりに、pushViewController をプッシュします。self.landscapeViewController を使用して直接参照しました。

以下はコードです。これが将来誰かに役立つことを願っています。

self.landscapeViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LandscapeView"];
 [self.navigationController pushViewController:self.landscapeViewController animated:YES];
于 2013-09-17T02:11:05.850 に答える