我不断收到以下错误:iPhone UINavigation问题 - 嵌套推动画可以导致损坏的导航栏
2011-04-02 14:55:23.350 AppName[42430:207] nested push animation can result in corrupted navigation bar
2011-04-02 14:55:23.352 AppName[42430:207] nested push animation can result in corrupted navigation bar
2011-04-02 14:55:23.729 AppName[42430:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2011-04-02 14:55:23.729 AppName[42430:207] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
下面是我在做什么。从一个视图控制器,我请当某个按钮被按下的情况如下:
EventsViewController *viewController = [[EventsViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
navController.navigationBar.tintColor = [UIColor blackColor];
[self presentModalViewController:navController animated:YES];
[viewController release];
[navController release];
然后,如果某个按钮被EventsController推动时,我称:
SingleEventViewController *viewController = [[SingleEventViewController alloc] initWithEvent:[currentEvents objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
然后,如果某个按钮在SingleEventViewController推,我呼吁:
EventMapView* viewController = [[EventMapView alloc] initWithCoordinates];
[[self navigationController] pushViewController:viewController animated:YES];
[viewController release];
所以啊,很明显,有嵌套推动画,但是这不就是去了解它的正确方法?我检查了Apple的DrillDownSave代码,这似乎是他们如何做的。我使用init方法而不是viewDidLoad方法是否重要?
这可以解决问题,因为只有在视图完成动画之后才能调用didSelectRowAtIndexPath。如果您只是确保在viewDidAppear:或更高版本中调用您的pushViewController,则iOS不会抱怨嵌套的pushViewController调用。 – 2011-05-30 02:58:09
我真的不明白“显然,如果您从UITableViewDelegate的-didSelectRowAtIndexPath方法的外部调用-pushViewController,它不起作用。”它在我的项目中起作用。 – 2015-12-30 08:02:22