如何从当前方向呈现视图控制器init(特别是在横向中)?

时间:2012-10-15 03:35:19

标签: ios ipad uiviewcontroller

我有一个名为AViewController的视图控制器。 AViewController中有一个按钮。单击该按钮时,我将呈现另一个视图控制器,让我们调用BViewController。如果AViewController是纵向的,它运行良好。如果方向是横向的,那么BViewController仍然是纵向初始化的,但是以横向呈现。

这就是问题所在。我想知道如何在当前方向初始化BViewController。我在BViewController的init中使用[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];
}

1 个答案:

答案 0 :(得分:0)

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

该摘录如下:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self willAnimateRotationToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];
}
相关问题