【问题标题】:presentViewController not working after orientation change to portraitupsidedown方向更改为纵向颠倒后,presentViewController 不起作用
【发布时间】:2013-01-09 10:56:48
【问题描述】:

代码是:

OptionsTableViewController *optionsTableVc = [[OptionsTableViewController alloc] initWithItems:itemNames andSelectedItem:-1 andOrigin:-1];

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:optionsTableVc];
optionsTableVc.delegate = self;
[self presentViewController:nav animated:YES completion:nil];

OptionsTableViewController 是一个自定义视图控制器,它继承自 UITableViewController,一个简单的对象

此代码在纵向、向右旋转一次或向左旋转一次时运行良好 - 但是当我在方向更改为 UpsideDown 后尝试执行此代码时 - 它停止工作 - 当我尝试执行它时,当前视图被“翻转”(即从上下颠倒,或从横向到横向)并立即消失。

【问题讨论】:

  • 你有正在发生的事情的截图吗?分别在纵向和横向之前和之后会有所帮助。
  • 你想展示的viewController是否允许上下颠倒?
  • @user801477 IOS 5.1 不允许您在 uiviewcontroller 上设置允许的方向

标签: objective-c ipad ios5


【解决方案1】:

您要更改为的视图控制器可能没有为 upsideDown 的以下函数返回“是”

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{

}

如果您的目标视图控制器中还没有此功能,您需要添加它并为您想要支持的所有方向返回 yes(听起来可能全部)。如果你确实想支持所有方向,你可以从这个函数中返回 yes,这应该可以解决你的问题。

【讨论】:

  • 或者你的 viewController 类中没有 shouldAutorotateToInterfaceOrientation 方法
【解决方案2】:

添加这一行修复了奇怪的行为:

nav.modalPresentationStyle = UIModalPresentationPageSheet;

【讨论】:

    猜你喜欢
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    相关资源
    最近更新 更多