我在让我的导航控制器工作时遇到了严重的问题,并且已经尝试了这个网站上几乎所有相关的问题。
我的问题是,当我以编程方式执行 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 中,我们根据某些条件执行 segue:
- (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,它不会转换到等待列表视图,而只是停留在 Loading 并将错误打印到控制台。当我按下而不是返回登录屏幕时,我得到以下空白屏幕:
如果我再次按下它会崩溃并出现此错误: http: //pastebin.com/7mCyeQv9
导航堆栈显然有些混乱,但是我已经使用调试器对其进行了检查,它看起来非常好,一切都正常推送。我这辈子都想不通。这只是我以前使用过的标准导航控制器设置。
有任何想法吗?