我遇到严重的问题让我的导航控制器工作,并尝试几乎所有相关的问题在这个网站上。UINavigationController'损坏的导航栏'问题
我的问题是,当我以编程方式执行segue时,导航栏中似乎存在转换,但视图不会更改。我看到下面的错误,而不是:
2013-10-22 13:47:30.059 App[2236:a0b] nested push animation can result in corrupted navigation bar
2013-10-22 13:47:30.411 App[2236:a0b] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2013-10-22 13:47:30.501 App[2236:a0b] Unbalanced calls to begin/end appearance transitions for
我的故事板是这样的:
在LoginViewController我们基于某些条件执行赛格瑞:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear];
NSString* appState = [AppConfig getAppState];
if ([appState isEqualToString:APP_STATE_WAITING]) {
[self performSegueWithIdentifier:@"Load" sender:self];
}
else if ([appState isEqualToString:APP_STATE_REGISTRATION_AVAILABLE]) {
[self performSegueWithIdentifier:@"SignUp" sender:self];
}
}
在LoadingViewController我们在执行操作前等待Web服务响应:
- (void)segueToWaitingList:(NSUInteger)behind inFront:(NSUInteger)inFront
{
[MosaycOptions setAppState:APP_STATE_WAITING];
dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"Waiting" sender:self];
});
}
这就是让我感到棘手的问题。导航栏的转变,但认为不和我们看到打印出来以下错误:
2013-10-22 13:47:30.059 App[2236:a0b] nested push animation can result in corrupted navigation bar
2013-10-22 13:47:30.411 App[2236:a0b] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
2013-10-22 13:47:30.501 App[2236:a0b] Unbalanced calls to begin/end appearance transitions for
的应用程序不会崩溃,但没有发生SEGUE,它不会转移到等待名单的看法,但仅仅停留在加载并打印错误到控制台。当我按回到而不是移动回登录屏幕出现以下空白屏幕:
如果我回来了它与此错误崩溃按:http://pastebin.com/7mCyeQv9
东西显然是越来越乱了与导航堆栈,但我已经检查它使用调试器,它看起来非常好,一切都被推到平常。我不能为我的生活弄清楚。这只是我之前使用的标准导航控制器设置。
任何想法?
为什么你使用dispatch_async(dispatch_get_main_queue(),^ {“in ** viewDidAppear **?** viewDidAppear **总是在主队列中运行 – adnako
好点,遗留在另一个位置。 – Michael
您应该使用** viewDidAppear:(BOOL)animated **方法,而不是** viewDidAppear ** – adnako