2013-06-10 2 views
0

안녕하세요 저는 iOS 개발자입니다. 저는 5 명의 탭 뷰가있는 프로젝트를 개발하는 초보자입니다. Michael Frederick이 자신의 GitHub 페이지에서 컨테이너보기를 사용하여 메뉴를 슬라이드했습니다. Project Link:https://github.com/mikefrederick/MFSideMenu. 그는 Storyboard를 사용하여 같은 것을 달성하고 컨테이너 뷰 및 하위 뷰를 정의하는 것을 시도했지만 펜촉 (.xib) 파일을 사용하고 있습니다. 친절하게도 내 스토리 보드에 수용하기 위해 아래 코드를 수정하는 방법에 대해 조언을 해줄 수 있습니다.Sademenu with Storyboard tabBarControllers with Storyboard

AppDelegate.m의 원래 코드는

- (DemoViewController *)demoController { 
return [[DemoViewController alloc] initWithNibName:@"DemoViewController" bundle:nil]; 
} 

- (UINavigationController *)navigationController { 
return [[UINavigationController alloc] 
     initWithRootViewController:[self demoController]]; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 

[tabBarController setViewControllers:[NSArray arrayWithObjects:[self navigationController], 
             [self navigationController], nil]]; 

SideMenuViewController *leftSideMenuController = [[SideMenuViewController alloc] init]; 
SideMenuViewController *rightSideMenuController = [[SideMenuViewController alloc] init]; 

MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController 
                containerWithCenterViewController:tabBarController 
               leftMenuViewController:leftSideMenuController 
               rightMenuViewController:rightSideMenuController]; 

self.window.rootViewController = container; 
[self.window makeKeyAndVisible]; 

return YES; 
} 

@end 
  1. 방법 컨테이너 부모 뷰와 아이 뷰를 수용 할 수있는 코드를 수정하는 것입니다?
  2. 두 번째 탭보기의 상위 및 하위 코드는 어디에서 인스턴스화해야합니까? AppDelegate 또는보기 컨트롤러에서?

다른 세부 정보가 필요하면 의견을 남겨주세요. 어떤 도움이라도 대단히 감사하겠습니다. 덕분에 사전.

+0

내 스토리 보드는 이와 유사합니다. [My Storyboard screen] (http://i43.tinypic.com/2ahd5yv.png) – iSrini

답변

4

아직도 필요한지 모르겠지만 오늘도 똑같은 문제가 있습니다. 당신이해야 할 것은 :

  • 앱을 통해 두 가지 방법을 모두 제거 위임

앱 위임에 넣고 : 스토리 보드에서

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD" bundle:[NSBundle  mainBundle]]; 

MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController; 

UIViewController *leftSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"THE_IDENTITY_OF_YOUR_SIDEMENU"]; 

UITabBarController *centerViewController = [storyboard instantiateViewControllerWithIdentifier:@"IDENTITY_OF_YOUR_TABBARCONTROLLER"]; 

[container setCenterViewController:centerViewController]; 
[container setLeftMenuViewController:leftSideMenuViewController]; //for the right Side, its the same way... 
[container setPanMode:MFSideMenuPanModeNone]; //remove this line, if you need the pan mode 
return YES; 

당신은의 ViewController를 넣어야 "MFSideMenuContainerViewController"의 하위 클래스로 속성 관리자에서이 뷰를 "초기 뷰 컨트롤러"로 표시하십시오. 이제 새 초기 뷰 컨트롤러의 Segue를 사용하여 TabBarController에 "푸시"하십시오. 경고를 피하려면 Segue의 이름을 변경하십시오.

이 작업을 완료 한 후에는 모든보기에 UIBarButtonItem을 추가 할 수 있으며 사이드 메뉴를 추가 할 수 있습니다. 이 UIBarButtomItem의 작업 방법에서 당신은이 작업을 수행해야합니다

[self.menuContainerViewController toggleLeftSideMenuCompletion:^{}]; 

마침내 당신이 UIViewController에 나있는 UITableViewController이 있는지 확인, 즉 당신의 "SideMenu"입니다 오른쪽 스토리 보드 ID를 설정합니다. 당신은 아직도 도움이 필요하면

, 내 영어이 ... 미안 코멘트 : 당신은 https://github.com/ozcanakbulut/VoovilSideMenu을 사용할 수 있습니다

+0

나는 이것을 시도했지만 제대로 작동하지 않는 것 같습니다. 나는 MFSideMenuContainerViewController에서 서브 클래 싱 된 Viewcontroller의 viewdidload 메소드에 로그 문을 추가했지만 결코 아이디어를 얻지 못했습니까? – mday

0

. tabBarController에 쉽게 포함시킬 수 있습니다. 그것은 스토리 보드와 아크를 사용합니다.