2013-02-14 3 views
8

PKRevealController를 기존의 내 프로젝트에 통합하려고합니다. 나는 스토리 보드를 사용하고있는 경우iOS PKRevealController를 스토리 보드 및 자동 레이아웃과 통합합니다.

https://github.com/pkluz/PKRevealController

어떻게 내 왼쪽 뷰 컨트롤러, 바로보기 컨트롤러 및 전면 뷰 컨트롤러를 설정합니까? 추가 정보는 다음을 수행 할 것이라고 말합니다.

PKRevealController *revealController = [PKRevealController revealControllerWithFrontViewController:frontVC leftViewController:leftVC options:options]; 

self.window.rootViewController = revealController; 

기존 스토리 보드 프로젝트에는 어디에 이러한 코드를 삽입해야합니까? 아니면 이것을 설정할 수있는 대안이 있습니까?

감사합니다.

+3

나는 비슷한 질문에 대답했다 : [기존 Xcode 스토리 보드에서 pkRevealController 사용하기] (http://stackoverflow.com/questions/14824959/using-pkrevealcontroller-on-existing-xcode-storyboard/14825615#14825615) – rdelmar

답변

2

세그 대상 컨트롤러의 유형을 PKRevealController으로 설정하고 전면, 좌측 및 우측보기 컨트롤러에 스토리 보드 ID를 설정하기 만하면됩니다.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

    if ([segue.identifier isEqualToString:@"ToMain"]) { 

    PKRevealController* prc = segue.destinationViewController; 

    prc.frontViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"FrontViewController"]; 
    prc.leftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LeftViewController"]; 
    prc.rightViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"RightViewController"]; 

    } 
} 
+0

알았어. 내 스토리 보드의 'PKRevealController'진입 점을 만들어야한다는 뜻인가요? 그냥 탭 막대 단추 클릭 처리기에서 PKRevealController를 호출 할 수 있습니까? – expert

+0

또한'leftViewController'는 내 경우 읽기 전용 속성입니다. – expert

+1

이것이 효과가 없다는 점은 주목할 가치가 있습니다.IB의 뷰 컨트롤러를 'PKRevealController'클래스로 설정할 수 있지만, 세그가 발생하면 화면은 공백이며 반투명 그레이뿐입니다. – barndog

2

나는이 오래된 스레드 알지만, 어쨌든 여기에서거야 :)

는 기본적으로 세 개의 뷰 컨트롤러가 필요합니다 스토리 보드와 PKRevealController 작업을하려면. BaseController

  1. 메인 컨텐츠 컨트롤러와 네비게이션 컨트롤러의 기본 역할을거야 어떻게 PKRevealController 확장 취득하는 (나는 그것이라고합니다).

  2. 메인 콘트롤러이 fronViewController로 설정됩니다.

  3. NaviController 기본적으로 leftViewController, 일명 탐색 메뉴로 사용합니다.

FYI : MainController 및 NaviController를 stroyboard에서 디자인하고 코딩 할 수 있습니다.

이것이 우리가하는 방법입니다. 먼저 PKRevealController를 사용하여 BaseController를 다음과 같이 확장해야합니다.

@interface MainController : PKRevealController 

둘째, 여전히 BaseController에서이 라인을 viewDidLoad 메소드에 추가하십시오.

//init the fonrViewController 
UIViewController *homeController = [self.storyboard instantiateViewControllerWithIdentifier:@"homeScreen"]; 
//init the leftViewController 
UIViewController *naviContrlller = [self.storyboard instantiateViewControllerWithIdentifier:@"quickNaviScreen"]; 

[self setFrontViewController:homeController]; 
[self setLeftViewController:naviContrlller]; 

그런 다음 PKRevealController 대리인을 다음과 같이 설정하십시오.

self.delegate = self; 

그리고 그게 전부입니다.

+0

고마워요! 하지만 어떻게 우리가/숨기기 메뉴를 왼쪽 또는 오른쪽 전면 vc에서 슬쩍없이 숨길 수 있습니까? Plz –

관련 문제