【问题标题】:Push a view controller in portrait from a view controller that's in landscape从横向视图控制器推送纵向视图控制器
【发布时间】:2011-05-31 18:53:49
【问题描述】:

我有一个 UITableViewController 可以在纵向和横向上工作。从这个控制器,我将另一个视图控制器推到导航控制器上。这个新的 viewController 只是纵向的。

问题是,当我处于横向并推动视图控制器时,新的视图控制器也处于横向状态,直到我将其旋转为纵向。然后它会按原样卡在纵向上。

是否可以始终以纵向显示?即使它的父母正在横向推动它?

更新:

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

【问题讨论】:

    标签: objective-c ios ios4


    【解决方案1】:

    在 viewWillAppear 中:状态栏方向改变后放这个:

    //present/dismiss viewcontroller in order to activate rotating.
    UIViewController *mVC = [[[UIViewController alloc] init] autorelease];
    [self presentModalViewController:mVC animated:NO];
    [self dismissModalViewControllerAnimated:NO];
    

    希望它会有所帮助!

    P.S.在 sdk 3.2.5 ios 5.0.1 上测试。

    【讨论】:

    • 我找到了更好的解决方案。
    【解决方案2】:

    在您的viewWillAppear: 中使用以下代码:

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
    

    【讨论】:

    • @WrightCS 谢谢,但这只会旋转状态栏...视图的其余部分仍处于横向状态
    • 您的视图应该可以任意旋转。 shouldAutorotateToInterfaceOrientation:你有什么?
    • 好的,然后将setStatusBarOrientation: 放入您的横向控制器中的viewWillDisappear:
    • @Linus 您找到解决问题的方法了吗?我在这里遇到了完全相同的问题,但我找不到解决方案。
    猜你喜欢
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2020-02-02
    • 1970-01-01
    • 2010-12-26
    • 2012-12-09
    • 1970-01-01
    相关资源
    最近更新 更多