首頁>Program>source

我有一个基於匯航的應用程式,在该應用程式中,我只希望其中的一个视圖控製器支援横向顯示.對於该viewcontroller(vc1),在shouldAutorotate中,對於所有方向我都返迴yES,而在其他控製器中,我仅對人像模式中返迴

但是即使那樣,即使設備處於横向模式,並且我从vc1轉到下一个螢幕,下一个螢幕也会在横向模式下旋轉.我假設如果仅對縱向模式返迴"是",則螢幕應仅以縱向顯示。

這是預期的行為吗? 如何實現我想要的?

谢谢。

最新回復
  • 9天前
    1 #

    如果使用 shouldAutorotateToInterfaceOrientation,則不能仅對其中一个视圖控製器支援横向方向 UIViewController的方法。
    所有视圖控製器是否都支援风景,或者没有视圖控製器都支援风景,您只有两種選擇。

    如果要仅支援一个景观,則需要檢測設備旋轉並在ViewController中手動旋轉视圖。
    您可以通過使用Notification来檢測設備旋轉。

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(didRotate:)
                                                 name:UIDeviceOrientationDidChangeNotification
                                               object:nil];
    

    然後,您可以在檢測到設備旋轉時旋轉视圖。

    - (void)didRotate:(NSNotification *)notification {
        UIDeviceOrientation orientation = [[notification object] orientation];
        if (orientation == UIDeviceOrientationLandscapeLeft) {
            [xxxView setTransform:CGAffineTransformMakeRotation(M_PI / 2.0)];
        } else if (orientation == UIDeviceOrientationLandscapeRight) {
            [xxxView setTransform:CGAffineTransformMakeRotation(M_PI / -2.0)];
        } else if (orientation == UIDeviceOrientationPortraitUpsideDown) {
            [xxxView setTransform:CGAffineTransformMakeRotation(M_PI)];
        } else if (orientation == UIDeviceOrientationPortrait) {
            [xxxView setTransform:CGAffineTransformMakeRotation(0.0)];
        }
    }
    

  • 9天前
    2 #

    我也遇到這樣的情况,当我需要所有视圖控製器處於縱向模式時,但是其中之一也可以旋轉到横向模式.並且此视圖控製器具有匯航欄.

    為此,我建立了第二个視窗,在我的情况下是相機视圖控製器.当我需要顯示摄像機视圖控製器時,我会顯示摄像機視窗並在需要按下另一个视圖控製器時隱藏。

    並且您還需要將此代碼添加到AppDelegate。

    - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
    {   
        if (window == self.cameraWindow)
        {
            return UIInterfaceOrientationMaskAllButUpsideDown;
        }
        return UIInterfaceOrientationMaskPortrait;
    }
    

  • 9天前
    3 #

    当我為我的App計算出来時,建議您使用此解決方案。通過在shouldAutorotateToInterfaceOrientation方法方向型別中使用一些條件,我们可以解決此問题。只需尝試使用此鏈接將對您有所帮助。

    https://stackoverflow.com/questions/12021185/ios-rotate-view-only-one-view-controllers-view/15403129#154031

  • MongoDB,MapReduce和排序
  • 如何在R指令碼中遍歷檔案名?