首页 文章

在特定详细视图控制器中隐藏主视图控制器

提问于
浏览
0

我有一个实现UISplitViewController的应用程序 . 细节和主VC都嵌入在导航控制器中 . 但是,当详细导航控制器显示其根/顶级视图时,我希望隐藏主视图 .

在iOS 6上,我可以用以下方法完成此任务

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [[self splitViewController] setDelegate:nil];
  [[self splitViewController] setDelegate:self];
  [[[self splitViewController] view] setNeedsLayout];
  [[self splitViewController] willRotateToInterfaceOrientation:CURRENT_ORIENTATION duration:0];
  [[self view] setNeedsLayout];
}

但是,相同的代码在iOS 7上不起作用 .
转换后,主视图实际上隐藏了,但细节不适合整个屏幕,右侧有一个灰色间距,与主人的宽度相同 . 如果设备旋转两次,则它将填满屏幕 .

在iOS 6上,在视图转换后,细节将自动填满屏幕 .

1 回答

  • 0

    得到它了!我用下面的代码替换了上面的代码 . 现在它适用于iOS 6和7 .

    - (void)viewWillAppear:(BOOL)animated {
      [super viewWillAppear:animated];
      [[self splitViewController] setDelegate:nil];
      [[self splitViewController] setDelegate:self];
      [[self splitViewController] willAnimateRotationToInterfaceOrientation:CURRENT_ORIENTATION duration:0];
      [[self splitViewController] willRotateToInterfaceOrientation:CURRENT_ORIENTATION duration:0];
      [[self splitViewController] didRotateFromInterfaceOrientation:CURRENT_ORIENTATION];
      [[self splitViewController] viewWillLayoutSubviews];
      [[[self splitViewController] view] layoutSubviews];
    }
    

相关问题