2012-02-17 5 views
3

私は偉大なライブラリZUUIRevealControllerで遊んでいます。しかし、私はそれをプログラミングすることができないので、ユーザはリアコントローラ内のセルをタップすることができます。リア・コントローラーが消えて、新しいビュー・コントローラーが正面図に表示されます。ZUUIRevealController - リアビューコントローラーのテーブルビューセルを押してフロントビューのビューをプッシュ

私はセットアップをしました。このように私のプロジェクト:

VGViewController *frontViewController; 
RevealController *rearViewController; 

frontViewController = [[VGViewController alloc] initWithNibName:@"VGViewController" bundle:nil]; 

self.navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController]; 

rearViewController = [[RevealController alloc] initWithNibName:@"RevealController" bundle:nil]; 

ZUUIRevealController *revealController = [[ZUUIRevealController alloc] initWithFrontViewController:self.navigationController rearViewController:rearViewController]; 

[frontViewController release]; 
[rearViewController release]; 

self.window.rootViewController = revealController; 
[revealController release]; 
[self.window makeKeyAndVisible]; 
return YES; 

私が誰かが私を助けることができると思います! :D

答えて

4

あなたはライブラリが気に入りましたか?

あなたのプロジェクトは正しく設定されているようですが、論理的に私はrearViewController < => RevealControllerの仕組みに従うことができませんが、それは間違いありません。あなたの質問に答えるために

:によって異なるfrontViewControllerを表示するためには を、あなたは適切な方法(例えば、コードのこの部分をトリガーする必要がrearViewControllerのセルをタップ言う:のtableView:didSelelctRowAtIndexPath :)

- :このコードの一部はされません、それは(revealControllerする必要があります)rearViewControllers親への参照を掴み、そしてこれはあなたの問題を解決し [revealController setFrontViewController:navigationController animated:NO];

希望を呼び出すことによって、そこに新しいfrontViewControllerインスタンスを割り当て、何

// RearViewController.m file in some method: 
// - Let's grab a reference to the revealController first: 
ZUUIRevealController *revealController = [self.parentViewController isKindOfClass:[ZUUIRevealController class]] ? (ZUUIRevealController *)self.parentViewController : nil; 

// Check if we're not attempting to swap the current FrontViewController for exactly the same controller over again... 
if (![revealController.frontViewController isKindOfClass:[NewFrontViewController class]]) 
{ 
     NewFrontViewController *newFrontViewController; 

     if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
     { 
      newFrontViewController = [[NewFrontViewController alloc] initWithNibName:@"NewFrontViewController_iPhone" bundle:nil]; 
     } 
     else 
     { 
      newFrontViewController = [[NewFrontViewController alloc] initWithNibName:@"NewFrontViewController_iPad" bundle:nil]; 
     } 

     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:newFrontViewController]; 
     [newFrontViewController release]; 
     [revealController setFrontViewController:navigationController animated:NO]; 
     [navigationController release]; 
} 

+0

お返事ありがとうございます。私はそれを働かせることはできません。配列に4つの要素があり、上記のコードを使用すると何も起こりません。テーブルビューでは、タップされたセルのテキストが文字列と等しいかどうかを確認し、それに基づいてナビゲーションを実行できます。私はここでsimular何かをすることはできますか? – Jonas

+0

2週間前に私が図書館に提供した更新されたサンプルプロジェクトを見てきましたか?私はrearViewにテーブルを設定し、別のもののためにfrontViewControllerを交換します。 - もちろん、テキストはあなたが望むものと一致するかどうかを確認してからアクションをトリガーすることができます。 - アイデアは基本的には本当にシンプルで、あなたの問題はライブラリ内にあるようには見えません。あなたがする必要があるのは、新しいViewControllerを作成し、 '[revealController setFrontViewController:newViewController animated:NO]'を呼び出すだけです。 d ['self.navigationController pushViewController:XXX animated:YES];' – pkluz

+0

ありがとうございました。 :D – Jonas

関連する問題