1

縦長の親から横長モードで ViewController をロードしたい。親は縦向きに固定され、向きは変わりませんが、親からプッシュされた子ビュー コントローラーは、デバイスの向きに関係なく、最初は縦向きをロードします (デバイスをさらに数回回転させると、向きが子に適切に設定されます)。 )。したがって、最初の時間自体に子を適切にロードする方法。

また

ViewWillAppear メソッドで使用できるように、向きをプログラムで設定する方法はありますか。ありがとう。

4

4 に答える 4

3

子 UIViewController で、次の 2 つのメソッドを設定します。

- (BOOL)shouldAutorotate
{
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscapeLeft;
}

親 UIViewController で次のことを行います。

[self.navigationController presentViewController:controller animated:YES completion:nil];

それ以外の:

[self.navigationController pushViewController:controller animated:YES];

子にナビゲーション バーを表示する場合:

DetailViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
controller.title = @"Child";

子ビュー コントローラーではなく、上記の 2 つのメソッドを使用して UINavigationController をサブクラス化する必要があります。

MyNavigationController *nav = [[MyNavigationController alloc] initWithRootViewController:controller];

[self.navigationController presentViewController:nav animated:YES completion:nil];
于 2013-06-12T10:22:59.147 に答える
3

このサンプル プロジェクトを試してみてください........

https://www.dropbox.com/s/lrsz4dpeolpeu23/RotationDmeo.zip

于 2013-06-12T10:55:07.887 に答える
0

これをビューで使用すると、表示された、または表示されます。

[[UIDevice currentDevice]performSelector:@selector(setOrientation:) withObject:(__bridge id)((void *)UIInterfaceOrientationLandscapeRight)];

その前に、.plist で 4 つの方向をすべて有効にします。

これを AppDelegate.m に追加します

- (NSUInteger)application:(UIApplication*)application
supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
    UIViewController *cont=self.vc;

    if([cont isKindOfClass:[YourClass class]])
    {
         NSUInteger orientations =  UIInterfaceOrientationMaskLandscapeRight;

        NSLog(@"Landscape");

        return orientations;
   }

    NSUInteger orientations = UIInterfaceOrientationMaskPortrait;

    return orientations;
} 
于 2015-07-31T12:37:09.313 に答える
0

私が正しければ、このメソッドを子View Controllerに追加するだけです

- (BOOL)shouldAutorotate {
    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    return UIInterfaceOrientationLandscapeLeft / Right;
}

ビューの使用を提示するには

[self presentViewController:viewController...]

ビューは横向きモードで表示されます。

于 2015-07-24T11:14:59.223 に答える