Как определить текущую ориентацию контроллера вида iOS? - PullRequest
0 голосов
/ 07 марта 2019

В моем приложении вручную устанавливает ориентацию в соответствии с видом контроллера.Помимо этих контроллеров вида, мне нужно определить текущую ориентацию большинства контроллеров вида сверху ( Не ориентация устройства ).Возможно ли это?

Так я устанавливаю ориентацию.

-(BOOL)shouldAutorotate {
    return YES;
}

-(UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return YES;
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Вы можете установить ориентацию каждого контроллера вида:

class YourViewController: UIViewController {

    var _orientations = UIInterfaceOrientationMask.landscape
    override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
    get { return self._orientations }
    set { self._orientations = newValue }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    //...
}

и затем читайте это свойство везде, где хотите:

let vc = YourViewController()
print(vc._orientation)
0 голосов
/ 07 марта 2019

Как уже говорилось, вы хотите проверить текущую ориентацию, установленную в вашем корневом / верхнем большинстве VC.

Таким образом, вы можете обнаружить с помощью этого кода: -

if (topViewController.responds(to: Selector(("canRotate")))) else{
        // view is set to portrait 
        return .portrait;
    }
    // // view is set to landscape 
    return .allButUpsideDown;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...