2013-02-05 30 views
1

嘿,伙计们我想把一个新的控制器推到导航栈上,然后移除我从哪里推出的控制器。 这里是我的代码:推一个新的ViewController并从NavigationStack弹出最后一个

WishDetailViewController *detailView = [self.storyboard instantiateViewControllerWithIdentifier:@"WishDetailView"]; 
              detailView.transferWishID = [NSNumber numberWithFloat:[[response objectForKey:@"id"]floatValue]]; 
              [self.navigationController pushViewController:detailView animated:YES]; 
              [self.navigationController popViewControllerAnimated:NO]; 

寄托都工作正常,但我在这里得到这个消息控制台内部:

2013-02-05 10:32:42.029 BWMApp[1444:1a603] nested pop animation can result in corrupted navigation bar 
2013-02-05 10:32:42.392 BWMApp[1444:1a603] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted. 

所以我做错了,我怎么能阻止我的应用程序从引发此错误信息 ?

+0

你试过先弹出当前最顶层的视图控制器,然后推新的?或者,你可以使用'-setViewControllers:animated:'。 –

回答

3

您可以使用setViewController。本示例删除所有和插入别人,而是给你的基本思路:)

NSMutableArray *viewCons = [[[self navigationController]viewControllers] mutableCopy]; 
[viewCons removeAllObjects]; 
[viewCons addObject:portraitTemp]; 
[viewCons addObject:self]; 

[[self navigationController] setViewControllers:viewCons]; 
0

没有必要弹出的“老”视图 - 控制。 navigationController自动创建一个后退按钮。如果您从堆栈中弹出viewcontoller,则不会有viewcontroller“跳回”。这是控制台内部消息的原因。 navigationController无法正常工作。

0
WishDetailViewController *detailView = [self.storyboard instantiateViewControllerWithIdentifier:@"WishDetailView"]; 
detailView.transferWishID = [NSNumber numberWithFloat:[[response objectForKey:@"id"]floatValue]]; 
[self.navigationController popViewControllerAnimated:NO]; 
[self.navigationController pushViewController:detailView animated:YES]; 
相关问题