2012-05-04 13 views
2

プロジェクトテンプレートを「シングルビュー」として選択します。ボタンclick.Buttonアクションで詳細ビュー(UIViewController)をプッシュしようとしていますが、自己navigatingController]と......私のコードはプッシュ:self.navigationController iはタイプナビゲーションコントローラの局所用変数INIT ALLOCしようとし、また変数は非できたnull.Soあるプッシュビューが単一ビューベースのアプリケーションからUIViewControllerをプッシュしない

MapDetailViewController *mapDetailViewController = [[MapDetailViewController alloc] init]; 
    [self.navigationController pushViewController:mapDetailViewController animated:YES]; 
    NSLog(@"self.navigation is as %@",self.navigationController); 

-null(16進数の値)でもmapDetailViewをプッシュできませんでした。私は何を考えていますが、私は間違ったテンプレートを選びだしたことです
(ビューベース)私はナビゲーションベース(主従)を選択します.Should .Well以下の自動生成コードをアプリケーションデリゲートである:

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
// Override point for customization after application launch. 
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; 
self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 
return YES; 

ここでナビゲーションコントローラのいくつかの変更を行う必要がありますか?
提案はありますか?

答えて

5

あなたの問題は、プッシュを行うナビゲーションコントローラがないことです。コードを次のように変更してください:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; 
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
    self.window.rootViewController = nav; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
+1

このコードは、初期のView Controllerが作成された場所、通常はアプリケーションデリゲートに属していることを念頭に置いてください。 – Caleb

+0

@マークそれは私のrootviewController上で私の問題を解決しましたが、ナビゲーションバーが表示されています(明らかに)。私はisHiddenを使用することができます:はい、それを隠すために。他の方法はないので、私の詳細ビューコントローラは、rootViewControllerとしてナビゲーションコントローラを作成しません。 – Alok

+0

Caleb:修正されました。 Maddy:一般に、ナビゲーションバーは、ビューをポップしたりプッシュしたりするときに使用されます。私はプッシュ/ポップすることについてはわかりませんが、1つを使用すると、自動的にバックボタンが生成され、これはiOS全体で一般的なデザインパターンです。 –

関連する問題