Как скрыть и показать основной контроллер вида в SplitView Controller - PullRequest
21 голосов
/ 05 ноября 2011

Я создал новый проект на основе разделенного представления в моем XCode 4.2

Затем в файле DetailViewController.m я добавил этот метод

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation 
{
  //This method is only available in iOS5  

   return NO;
}

Теперь, сделав это, я могупоказывать левую и правую части моего контроллера splitview одновременно.

Теперь я добавил UIBarButtonItem в мою DetailViewController панель навигации и хочу, используя которую я могу скрыть и показать свой мастер-вид какв портретном и ландшафтном режимах.

- (IBAction)hideUnhide:(id)sender 
{

//How can hide & unhide

}

Как я могу это сделать?

Ответы [ 11 ]

0 голосов
/ 11 ноября 2011

Ну, легкая часть вашего вопроса - использовать bool, скажем свойство hideMaster, а затем

- (IBAction)hideUnhide:(id)sender 
{

   self.hideMaster= !self.hideMaster;

}

, а затем ...

- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation 
{
  //This method is only available in iOS5  

   return self.hideMaster;
}

Это прекрасно работает, но shouldHideViewController вызывается только во время перерисовки splitVC, например, во время вращения, поэтому мастер только скрывает / отображает затем.

...