【问题标题】:SplitViewController's master side sometimes is not rendered correctly when changing orientation in IOS 6.1在 IOS 6.1 中更改方向时,SplitViewController 的主端有时无法正确呈现
【发布时间】:2013-01-21 13:32:58
【问题描述】:

我有一个标签栏控制器,里面有一些标签。一些 tabitems 是 splitviewcontrollers。有时,当我改变方向时,splitview 控制器的左侧无法正确渲染,底部有一个黑色方块。再次改变方向,问题就解决了。

我的代码没有什么特别之处。在 viewdidload 我有:

[self.navigationController setNavigationBarHidden:YES];
self.splitViewController.delegate = self;

一个 splitviewcontroller 委托方法被简单地处理:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:   (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return NO;
}

我什么都没有,只有一些表格视图,细节方面有一些单元格。

【问题讨论】:

    标签: ios objective-c ipad storyboard uisplitviewcontroller


    【解决方案1】:

    我见过这样的问题,我想出的唯一解决方法是重置左侧视图控制器视图的大小以及导航控制器的视图:

    - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
        if (self.splitViewController) {
            viewHeight = ...
            navViewHeight = ...
            CGRect viewFrame = CGRectMake(0, 0, 320, viewHeight);
            self.view.frame = viewFrame;
    
            CGRect navControllerViewFrame = CGRectMake(0, 0, 320, navViewHeight);
            self.navigationController.view.frame = navControllerViewFrame;
        }
    }
    

    viewHeight 和 navViewHeight 您可以根据当前方向(在调用 didRotateFromInterfaceOrientation: 时已设置)从屏幕高度计算。我想当你隐藏导航栏时,这些值对你来说应该是相等的。

    【讨论】:

      猜你喜欢
      • 2017-02-05
      • 2022-10-26
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 2018-05-27
      • 2012-08-26
      • 2013-05-01
      相关资源
      最近更新 更多