iphone - <BTSViewController : 0x865c520> 的开始/结束外观转换调用不平衡

标签 iphone ios ipad uinavigationbar pushviewcontroller

当我访问一个新 View (单击导航栏上的后退按钮)后回到我的旧 View 时,我遇到了这个错误

首先:单击 searchBar 时,我正在访问一个新 View ,其中包含 searchBar 代替 UINavigationBar(UINavigationBar 隐藏在新 View 中查看)..

这是代码片段,它在点击搜索栏后导航到新 View ...

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 
{
    BTSViewController *Obj = [[BTSViewController alloc]  initWithNibName:@"BTSViewController" bundle:nil];
    [self.navigationController pushViewController:Obj animated:NO];
}

第二: 在 searchBar 中单击取消按钮时,我将返回到我之前的 View 并在 viewWillDisappear 我正在执行的方法 setNavigationBarHidden:NO

这是代码片段,在单击 UISearchBar 中的“取消”按钮后返回到之前的 View ...

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    [self.navigationController popViewControllerAnimated:NO];
}

我导航到我以前的 View ,但 UINavigationBar 被隐藏并在我的日志中显示 Unbalanced call error...

提前致谢!!

最佳答案

这里你会得到这种类型的错误,有两个原因。

  1. 如果您同时推送多个 UIViewController

  2. 在您的 ViewController.mviewDidLoad: 方法中,并非所有花哨的动画都已完成,因此您的应用崩溃了

我建议如果您在 viewDidLoad: 方法中添加一些 Fancy Animations 代码,那么只需将那种类型的代码从 viewDidLoad: 替换为 viewDidAppear:并维护您的 viewControllers 的队列..

希望这个回答对你有帮助...

关于iphone - <BTSViewController : 0x865c520> 的开始/结束外观转换调用不平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317288/

相关文章:

ios - UIImagePickerController:如何允许编辑但隐藏裁剪选项

iphone - ExtAudioFileWrite 到 m4a/aac 在双核设备(ipad 2、iphone 4s)上失败

iphone - 更改 IBOutletCollection 的帧值

iphone - 在 iPad 上呈现长文档

ios - 在 iOS 7 中隐藏 UISearchBar 裁剪顶行

iphone - po 对象导致错误 : cannot find interface declaration for '$__lldb_objc_class'

ios - 将点击手势从 UIView 传递到底层 AVPlayer

ios - SDK 和 iOS 部署目标。

iphone - 什么是好的c编译器

ios - Gigya Swift 框架缺少 ios-framework-build.sh 脚本