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