【问题标题】:Hiding Master View Controller in specific detail view controller在特定的详细视图控制器中隐藏主视图控制器
【发布时间】:2014-02-10 12:59:33
【问题描述】:

我有一个实现 UISplitViewController 的应用程序。 detail 和 master 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 上,视图转换后,细节会自动填满屏幕。

【问题讨论】:

    标签: ios uisplitviewcontroller


    【解决方案1】:

    知道了!我用下面的代码替换了上面的代码。现在它适用于 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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多