[ios]从旋转景观中禁用 UITableViewcontroller (保持它的肖像)

标签: Xcode ios
发布时间: 2017/3/28 21:37:30
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图保持UITableViewcontroller在纵向方向。所以,我不想再旋转为横向模式。我下面的方法添加。但它并没有帮助,注意我使用 iOS 8:

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

}

注意︰ 我打电话通过UINavigationController UITableView

UINavigationController *navigationController = [[UINavigationController alloc]
                                                    initWithRootViewController:svc];
    // configure the new view controller explicitly here.




    [self presentViewController:navigationController animated:YES completion: nil];

解决方法 1:

shouldAutorotateToInterfaceOrientation:已弃用以来 iOS 6.0。你应该使用 supportedInterfaceOrientationsshouldAutorotate

这里是你怎么做︰

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotate
{
    return NO;
}

编辑-为UINavigationController

这是一个可行的方法去做︰

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    if ([self.visibleViewController isKindOfClass:[UITableViewController class]])
        return UIInterfaceOrientationPortrait;
    else
        return [super preferredInterfaceOrientationForPresentation];
}

- (NSUInteger)supportedInterfaceOrientations
{
    if ([self.visibleViewController isKindOfClass:[UITableViewController class]])
        return UIInterfaceOrientationMaskPortrait;
    else
        return [super supportedInterfaceOrientations];
}

- (BOOL)shouldAutorotate
{
    if ([self.visibleViewController isKindOfClass:[UITableViewController class]])
        return NO;
    else
        return [super shouldAutorotate];
}

注意你不能强迫设备的方向,所以如果该应用程序是在景观和您然后推表视图控制器,它仍将在景观。有多种方式来处理这个问题︰

  • 阻止用户打开表视图控制器通过显示警告,要求他们先旋转设备。
  • 隐藏表格视图和显示带有一条消息 (或一些其他指标) 来告诉用户旋转其设备的标签。
  • 处理这两个方向。
官方微信
官方QQ群
31647020