2011-12-18 26 views
0

"viewController1"を正しくプッシュするナビゲーションビューコントローラがあります。次に、 "viewController1"から、 "appViewController"を押すためにgoToApp関数が呼び出されます。機能goToAppは実行されるが、アプリケーションは同じビュー「viewControllerler1」にとどまる。それを押す方法?ありがとうございました。 navigationViewControllerでナビゲーションコントローラからプッシュされたビューコントローラが表示されません

navigationViewController *theInstance = [[navigationViewController alloc] init]; 
    [theInstance goToApp]; 

:viewController1から

-(void)goToApp { 

    appViewController *AppsViewController = [[appViewController alloc] initWithNibName:@"appViewController" bundle:nil]; 

    [[self navController] pushViewController:AppsViewController animated:YES]; 

    [AppsViewController release]; 

} 

goToAppが実行けどappViewControllerは起動されません。

答えて

0

viewController1に新しいUINavigationControllerを作成しないでください。あなたはプロパティnavigationControllerを介してそれを取得する必要があります。そのプロパティは、UIViewControllerがスタック上にあるUINavigationControllerを返します(存在する場合は、ゼロにすることができます)。

UINavigationController * theInstance = self.navigationController; 
[theInstance goToApp]; 

参照:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.htmlプロパティnavigationController。

これ以外にも、ポインタの名前を正しく表現するのが良い方法です。 theInstancecurrentNavigationControllerに、またはnavigationControllerにそれぞれ変更することをお勧めします。

+0

申し訳ありませんがわかりません。私はviewController1に新しいナビゲーションコントローラを作成していません。 viewController1は、navigationViewController(メインナビゲーションコントローラ)に実装されている関数を呼び出します。この関数は、前にviewController1をプッシュしたようにappViewControllerをプッシュする必要があります。 – Jaume

+0

申し訳ありませんが、私はあなたの質問に誤解しました。複数の可能性のあるエラーで複雑な構造を作ったようです。 'navigationViewController * theInstance'については、新しい' UIViewController'sをプッシュするビューを持っていますか?私は前の答えがまだ成り立つと思います。それは、新しいUINavigationControllerを再利用するのではなく作成するという意味です。 'viewController1'では' viewController1'をプッシュした新しい(それによって他の) 'UINavigationController'を取得します。 – Roemer

+0

作業して、本当に助けてください! – Jaume

関連する問題