Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在特定局部视图控制器中隐藏主视图控制器_Ios_Uisplitviewcontroller - Fatal编程技术网

Ios 在特定局部视图控制器中隐藏主视图控制器

Ios 在特定局部视图控制器中隐藏主视图控制器,ios,uisplitviewcontroller,Ios,Uisplitviewcontroller,我有一个实现UISplitViewController的应用程序。详细和主VCs都嵌入在导航控制器中。但是,当细节导航器控制器显示其根/顶层视图时,我希望主视图是隐藏的 在iOS 6上,我可以通过以下方式实现这一点: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[self splitViewController] setDelegate:nil]; [[self splitView

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

在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 6和iOS 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];
}