在我的应用程序中,我有 UIViewControllers A、B、C、D。我所做的是从 A 到 B 到 C 到 D 遍历。现在堆栈读起来像 A,B,C,D
然后我删除 C 和 D ,它们是堆栈中的前 2 个项目,使用
[self.navigationController popToViewController:BViewController animated:NO];
现在当我 NSLog 时,堆栈中有 A,B。现在,当我尝试迁移到 CI 时,得到“嵌套推送动画会导致导航栏损坏”。我很困惑为什么会这样。谁能帮我解决这个问题。谢谢你的时间
使用以下代码从 BI编辑到 C
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"C"];
[self.navigationController pushViewController:viewController animated:YES];
这段代码执行完之后,有一个异步代码我们push到D
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"D"];
[self.navigationController pushViewController:viewController animated:YES];
堆栈现在读取 A、B、C、D。当我弹出时,会出现问题
异步代码
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (error) {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:@"messagehomescreen" forKey:@"lastscreenstatus"];
UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = [storybord instantiateViewControllerWithIdentifier:@"D"];
[self.navigationController pushViewController:viewController animated:YES];
}
}];