2012-02-01 8 views
1

UITabitController를 UITabbarController와 함께 마스터 뷰 및 탐색 컨트롤러로 사용하고 있습니다. 마스터보기의 각 탭에는 탐색 컨트롤러가 포함되어 있습니다. 마스터보기의 탭 중 하나를 선택하면 상세보기 탐색 컨트롤러에보기가 푸시됩니다.UISplitViewController popover가 비어 있습니다.

recentsviewController = [[RecentsViewController_ipad alloc]initWithNibName:@"RootViewController" bundle:nil]; 
recentsNav = [[UINavigationController alloc] initWithRootViewController:recentsviewController]; 

//similarly rootNav and favNav 

NSArray* controllers = [NSArray arrayWithObjects:recentsNav,self.rootNav,favNav,nil]; 
self.tabbarController.viewControllers = controllers; 

detailViewController=[[LoginViewController_ipad alloc]init]; 
detailNav=[[UINavigationController alloc]initWithRootViewController:detailViewController]; 

splitViewController =[[UISplitViewController alloc]init]; 
splitViewController.viewControllers=[NSArray arrayWithObjects:self.tabbarController,self.detailNav,nil]; 
    splitViewController.delegate = self.detailViewController; 

[self.window addSubview:splitViewController.view]; 
[self.window makeKeyAndVisible]; 

이것은 제대로 작동하는 것 같습니다. 앱이 세로 모드로 전환되면 '찾아보기'버튼이 탐색 바에 추가됩니다. 이 버튼을 클릭하면 탭과 함께 숨겨진보기가 완벽하게 표시됩니다. 탭 사이를 전환하고 popover에 표시된보기에서 작업 할 수 있습니다. popover area가 아닌 다른 곳을 두 드렸을 때 Popover는 예상대로 해제됩니다.

작동하지 않는 두 가지는 팝 오버가 바 버튼을 선택해야하는 사용자없이 세로 모드로 자신의 때마다 응용 프로그램은 스위치에 표시 탐색에 추가하는

  1. 있습니다
  2. 에 어떤 경우에는 popover를 프로그래밍 방식으로 기각해야합니다.

내가 시도 FOLL 코드 :

- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc { 
barButtonItem.title = @"Browse"; 
[[self navigationItem] setLeftBarButtonItem:barButtonItem]; 
self.appDelegate.rootPopoverButtonItem = barButtonItem; 
self.appDelegate.splitViewPopover = pc; 
[self.appDelegate.splitViewPopover presentPopoverFromBarButtonItem:self.appDelegate.rootPopoverButtonItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:NO]; 
} 

이는 방향 변경 검은 색 반투명 ​​팝 오버마다 추가합니다. 탐색 버튼을 클릭했을 때 표시되는 내용을 표시하려면 어떻게합니까? 일반적으로 dismissPopvoerAnimated가 작동하지 않는 것 같습니다.

도움을 주시면 감사하겠습니다.

답변

0

performSelector : withObject : afterDelay 사용 : 문제 해결

관련 문제