1

我有一个视图控制器,名为 AViewController。AViewController 中有一个按钮。单击按钮时,我将呈现另一个视图控制器,称为 BViewController。如果 AViewController 是纵向的,它工作得很好。如果方向是横向,那么 BViewController 仍然以纵向初始化,但以横向显示。

这就是问题。我想知道如何以当前方向初始化 BViewController。我在 BViewController 的初始化中使用 [UIScreen mainScreen].bounds。但如果设备处于横向,则边界不在横向。我知道将帧从 AViewController 传递给 BViewController,它可能会起作用。但我认为这不是一个好的解决方案。那么有没有更好的方法呢?

呈现 BViewController 的函数如下:

- (void)BtnClicked
{
    BViewController *bvc = [[BViewController alloc] init];
    bvc.delegate = self;
    bvc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentViewController:movie animated:YES completion:nil];
}
4

1 回答 1

0

我仍然不知道如何有效地做到这一点。willAnimateRotationToInterfaceOrientation但是我使用一种解决方案来手动调用该方法viewDidAppear

片段如下:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self willAnimateRotationToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];
}
于 2013-11-20T03:39:44.357 回答