У меня есть splitViewController. Это подробно Подробно VCmasterView не всегда корректно отображает/скрывает
-(void)viewDidLoad
{
self.masterIsVisible = YES;
//a botton in navigation bar to hide or show the master view.
[button addTarget:self action:@selector(showOrHideMasterView)
forControlEventsTouchUpInside]
//gesture control to swipe right or left to slide master view in and out.
[swiperight addTarget:self action:@selector(showMasterView)];
[swipLeft addTarget:self action:@selector(hideMasterView)];
}
-(void)showOrHideMasterView
{
if (self.masterIsVisible)
[self hidemasterView]; self.masterIsVisible = NO;
else
[self showMasterView]; self.masterIsVisible = YES;
}
-(void)hideMasterView
{
//hides master view by substracting masterview's width from its origin.x
}
-(void)showMasterView
{
//shows master View by adding masterview's width to its origin.x
}
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return NO;
}
Все почти работает по назначению. Проблема: в одной ориентации & & мастер не виден .. тогда устройство меняет ориентацию .. Мастер-вид вместо того, чтобы сдвигаться с экрана, толкает представление детали другим способом. Я знаю, потому что теперь флаг установлен как masterIsVisible = NO вместо YES. Что я могу сделать, чтобы изменить флаг на YES при вращении устройства. выглядит тривиально, но, похоже, не выясняется.
Я пробовал зарегистрироваться для devicechnagenotification в UIDevice, но это не сработало. BOOL - ДА в любой ориентации. Пример Apple использует это, но похоже, что здесь не правильный подход.
Почему вы не используете Split View метод управления делегата '- (BOOL) splitViewController: (UISplitViewController *) SVC shouldHideViewController: (UIViewController *) VC inOrientation: (UIInterfaceOrientation) ориентации '? –
Я использую его. Я не упоминал там. Извиняюсь. Я вернул NO для этого метода делегата. – yourAnswerIsAwesome
Что произойдет, если вы всегда возвращаете 'YES' для этого метода? –