首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iPhone UINavigation问题-嵌套推送动画可能导致导航栏损坏

iPhone UINavigation问题-嵌套推送动画可能导致导航栏损坏
EN

Stack Overflow用户
提问于 2011-04-03 04:00:06
回答 17查看 52.9K关注 0票数 68

我一直收到以下错误:

代码语言:javascript
复制
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.

这就是我正在做的事情。在视图控制器中,当某个按钮被按下时,我调用以下代码:

代码语言:javascript
复制
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中按下了某个按钮,我将调用:

代码语言:javascript
复制
SingleEventViewController *viewController = [[SingleEventViewController alloc] initWithEvent:[currentEvents objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];

然后,如果在SingleEventViewController中按下了某个按钮,我将调用:

代码语言:javascript
复制
EventMapView* viewController = [[EventMapView alloc] initWithCoordinates];
[[self navigationController] pushViewController:viewController animated:YES];
[viewController release];

所以,很明显,有嵌套的推送动画,但这不是正确的方法吗?我查看了苹果的DrillDownSave代码,看起来他们就是这么做的。我使用init方法而不是viewDidLoad方法有关系吗?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2011-04-10 03:51:32

我已经弄明白了。显然,如果您从UITableViewDelegate的-didSelectRowAtIndexPath方法外部调用-pushViewController,它将无法工作。将调用转移到该函数中就可以了。真奇怪。

票数 9
EN

Stack Overflow用户

发布于 2011-07-13 14:54:50

viewDidAppear之前调用pushViewController是不安全的。

票数 119
EN

Stack Overflow用户

发布于 2011-04-11 13:02:29

我遇到了与您刚才相同的问题/错误消息,正在寻找解决方案,并最终来到了这个线程,然而,对我来说,我发现解决方案实际上只有一个动画:YES在执行嵌套推送时(我添加了动画:YES仅用于最后一次推送),希望这会有所帮助

干杯。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5525519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档