0

私のappDelegateでは、以下のようにClassAをナビゲーションコントローラーのルートビューに設定しています

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
  self.window       =   [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  ClassA    *classA =   [[ClassA alloc] initWithNibName:@"ClassA" bundle:nil];

  self.navigationController  =   [[UINavigationController alloc] classA];
  [self.window makeKeyAndVisible];
  return YES;
}

それからclassAで、私はやっています

- (void)myMethod {
  NSMutableArray *navigationArray1 = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];    

  NSLog(@"before using setViewControlles---->navigationarray.viewControllers is %d",[navigationArray1 count]);

  ClassB     *classB     =   [[ClassB alloc] initWithNibName:@"ClassB" bundle:nil];
  [self.navigationController setViewControllers:[NSArray arrayWithObject:classB] animated:YES]; 

  NSMutableArray *navigationarray2 = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
  NSLog(@"after using setViewControllers---->navigationController.viewControllers is %d",[navigationarray2 count]);

}

デバッグモードでは、私は得ています

before using setViewControlles---->navigationarray.viewControllers is 1
after  using setViewControlles---->navigationarray.viewControllers is 0

使用後、結果は1になるはずだと思いましたsetViewControllers

私は今道に迷っており、皆さんからのアドバイスが必要です。この問題について何かアイデアがあれば助けてください。ありがとう

4

1 に答える 1

0
self.window.rootViewController = classA

答えを変えました。self.navigationController.rootViewController が間違っています

于 2012-09-12T23:20:40.140 に答える