我的应用程序中存在一个问题,我在导航控制器中有以下结构:
RootView(菜单)-push->带有UISearchDisplay控制器的UITableViewController - 选择行推送 - >所选对象的详细视图控制器
在详细信息视图控制器上,有一个选项可以返回主菜单:
[self.navigationController popToRootViewControllerAnimated:YES];
所有这些在模拟器上都能正常工作。在iPhone 5S上进行测试时,我遇到了崩溃。
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000001d2a4beb8
Triggered by Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x000000018f8479d0 objc_msgSend + 16
1 UIKit 0x000000018689309c -[UISearchBar willMoveToSuperview:] + 64
2 UIKit 0x0000000186a6cea0 __UIViewWillBeRemovedFromSuperview + 188
3 UIKit 0x000000018679c3f0 -[UIView(Hierarchy) removeFromSuperview] + 68
4 UIKit 0x000000018679f4f8 -[UIView dealloc] + 420
5 UIKit 0x0000000186883350 -[UIScrollView dealloc] + 968
6 UIKit 0x0000000186943c3c -[UITableView dealloc] + 1300
7 UIKit 0x0000000186934108 -[UIViewController dealloc] + 460
8 UIKit 0x00000001869b85f8 -[UITableViewController dealloc] + 288
它似乎崩溃了,因为由于某种原因它没有解除分配UISearchBar。当我删除搜索显示控制器时,一切正常。
此外,如果我使用UINavigationController提供的“后退”按钮,则不会发生崩溃。只有当我从一个ViewController中弹出到根目录时,它在堆栈上比带有搜索的导航控制器更高。
任何帮助都会受到赞赏,因为我完全被难过了。