我遇到一个奇怪的问题,当执行一个方法时,导航堆栈中的viewcontrollers会丢失。在下面的代码中,我在导航堆栈中记录了viewcontroller计数。我也在导航堆栈中记录viewcontrollers。
NSMutableArray *navigationarray = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
NSLog(@"Navigation array %@", navigationarray);
NSLog(@"Navigation array count %d", [navigationarray count]);
[self.doneButton.target performSelector:self.doneButton.action withObject:self.doneButton.target];
NSMutableArray *navigationarrayOne = [[NSMutableArray alloc]initWithArray:self.navigationController.viewControllers];
NSLog(@"Navigation array %@", navigationarrayOne);
NSLog(@"Navigation array count %d", [navigationarrayOne count]);
在调用方法之前,导航堆栈有3个viewcontrollers。但是在执行该方法之后,导航堆栈中没有viewcontrollers。 我在3个viewcontrollers的dealloc方法中放了一个断点,发现viewcontrollers没有被释放。这可能是什么原因?
当前的类子类ABNewPersonViewController
..和self.doneButton.action
执行
- (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController
didCompleteWithNewPerson:(ABRecordRef)person;
子类ABPersonViewController
的类中的方法
答案 0 :(得分:1)
navigationController由该堆栈中的所有视图共享。其中任何一个都可以设置navigationController.viewControllers的值。查看您的新视图控制器是否正在更改导航堆栈。