0

2 つのビュー (ビュー 1 とビュー 2) があります。ビュー1にはボタンが含まれており、このボタンをクリックするとビュー2に移動します。ビュー2を縦向きと横向きで表示したいです。view2の場合、2つのUiviewControllerを1つを横向きに、2つ目を縦向きに作成し、同じクラスを使用しますが、機能しません。誰でも何か考えがありますか?

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
     return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
4

1 に答える 1

0

Orientation のためだけに 2 つの ViewControllers必要なのはなぜですか?

HEre 簡単なシナリオ ,

2 つのビューを作成する

  1. 縦長 &&
  2. ランドスケープ ビュー、ご要望に応じて。

このようなものに従ってください。

-(BOOL)shouldAutorotate{
    return YES;
}

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [self orientationChanged:toInterfaceOrientation];
}

-(void)orientationChanged:(UIInterfaceOrientation)orientation{
    NSLog(@"orientation change");
   // UIDeviceOrientation deviceOrientation = [[object object] orientation];

    if(orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown){
        NSLog(@"Changed Orientation To Portrait");
        self.viewPortrait.hidden = NO;
        self.viewLandscape.hidden = YES;
    }

else if(orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight){
    NSLog(@"Changed Orientation To Landscape");

    self.viewPortrait.hidden = YES;
    self.viewLandscape.hidden = NO;
    }  
}

そして、すべてのオリエンテーションが必要になるように設定する必要があります。

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}
于 2013-07-19T09:36:04.610 に答える