0

に変更しようとしてRootViewControllerNavigationControllerますdidFinishLaunchingWithOptions
しかし、どうすればそれができるのかわかりません。

私もこのリンクを通過しました:
http://starterstep.wordpress.com/2009/03/05/ching-a-uinavigationcontroller%E2%80%99s-root-view-controller/

ここに私のコードがありますdidFinishLaunchingWithOptions

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UIViewController *rootController=[[HomePageController alloc] initWithNibName:@"HomePageController" bundle:nil];
    navigationController=[[UINavigationController alloc] initWithRootViewController:rootController];

//    presentation=[[PresentationController alloc]initWithNibName:@"PresentationController" bundle:nil];
//    
//    navigationController=[[UINavigationController alloc]initWithRootViewController:presentation];
//    
//    presentationList=[[PresentationListController alloc]initWithNibName:@"PresentationListController" bundle:nil];
//    
//    UINavigationController *listnavigation = [[UINavigationController alloc] initWithRootViewController:presentationList];
//    
//    revealer=[[ZUUIRevealController alloc]initWithFrontViewController:navigationController rearViewController:listnavigation];

    [self.window addSubview:navigationController.view];

    [self.window makeKeyAndVisible];
    return YES;
}

現在、コメントしてからアプリケーションを実行して変更しrootviewcontrollerます。ただし、これは実際的なアプローチではありません。

どんな助けでも大歓迎です。

4

3 に答える 3

5

これの代わりに:

[self.window addSubview:navigationController.view];

これを入れてください:

self.window.rootViewController = navigationController;
于 2012-06-05T12:42:27.430 に答える
1

ナビゲーション コントローラーは、UIViewController のサブクラスである限り、ルート ビュー コントローラーがどのタイプのビュー コントローラーであるかを気にしません。したがって、次のように UIViewController へのポインターを使用できます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIViewController *rootController = nil;
    if (iWantHomePageController)
    {
        rootController = [[HomePageController alloc] initWithNibName:@"HomePageController" bundle:nil];
    }
    else if (iWantPresentationController)
    {
        rootController = [[PresentationController alloc] initWithNibName:@"PresentationController" bundle:nil];
    }
    else if (iWantPresentationListController)
    {
        rootController = [[PresentationListController alloc] initWithNibName:@"PresentationListController" bundle:nil];
    }

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootController];

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

    [self.window makeKeyAndVisible];
    return YES;
}
于 2012-06-05T16:06:53.060 に答える
0

これは私にとって本当にうまくいきます:

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

/*
    both *navigationController and *viewController are declared 
    as properties in the .h file 
*/
[self setViewController:[[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil] autorelease]];
[self setNavigationController:[[[UINavigationController alloc] initWithRootViewController:self.viewController]autorelease]];
[self.window setRootViewController:[self navigationController]];
[self.window makeKeyAndVisible];
于 2012-06-06T00:38:30.477 に答える