0

appDelegate でカスタム ナビゲーション コントローラーを作成しました。

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

poemsView  = [[[PoemsViewController alloc]initWithNibName:@"PoemsViewController" bundle:nil] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:poemsView] autorelease];
self.navigationController.navigationBarHidden = YES;


self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.window.rootViewController = self.navigationController;

[self.window makeKeyAndVisible];

問題は、viewController からのアプリ ランチが必要なことですが、viewController を rootviewController として設定すると、ナビゲーション コントローラーはナビゲーションをプッシュしません。また、その逆も同様です。ナビゲーション コントローラーをルートとして設定すると、アプリはメニューまたはメイン ビューから読み込まれません。コントローラー。

4

1 に答える 1

1

なぜ Poemsview を Navigation Controller の rootviewcontroller として作成するのですか?

最初に ViewController をロードする場合は、次のコードを使用します。

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

poemsView  = [[[PoemsViewController alloc]initWithNibName:@"PoemsViewController" bundle:nil] autorelease];

self.navigationController = [[[UINavigationController alloc] initWithRootViewController:self.viewController] autorelease];

self.navigationController.navigationBarHidden = YES;



self.window.rootViewController = self.navigationController;

[self.window makeKeyAndVisible];

として別のナビゲーション コントローラーを作成できます。Sub-class of Viewcontroller.

あなたの詩のボタン アクションで、次を追加します。

// Create a regular view controller.
PoemViewController *modalViewController = [[[PoemViewController alloc] initWithNibName:@"PoemViewController" bundle:nil] autorelease];

// Create a navigation controller containing the view controller.
UINavigationController *secondNavigationController = [[UINavigationController alloc] initWithRootViewController:modalViewController];

// Present the navigation controller as a modal view controller on top of an existing navigation controller
[self presentModalViewController:secondNavigationController animated:YES];

これで、あなたの から詳細ビューにプッシュできるようになりましtableview DidselectRowAtindexpathた。

于 2012-12-16T18:19:09.827 に答える