2013-02-14 13 views
8

私はPKRevealControllerを既存の私のプロジェクトに統合しようとしています。私は、ストーリーボードを使用している場合、私は私の左のビューコントローラ、右のビューコントローラ、およびフロントビューコントローラを設定するにはどうすればよいiOS PKRevealControllerとストーリーボードと自動レイアウトを統合する

https://github.com/pkluz/PKRevealController

? Readmeには...私は私の既存のストーリーボードプロジェクトにこれらのコード行を置く

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作業を行うには基本的に次の3つのビューコントローラが必要になります。

  1. メインコンテンツコントローラとナビゲーションコントローラのベースとして機能するようになるだろうかPKRevealControllerによって拡張取得BaseController(私はそれを呼ばれます)、。

  2. MainControllerこれはfronViewControllerとして設定されます。

  3. NaviController私たちは基本的にleftViewController、別名ナビゲーションメニューとして使用します。

FYI:MainControllerとNaviControllerをストロイボードから設計し、コード化することができます。

これは私たちのやり方です。 まず、このように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 –

関連する問題