IOS 8: - [UIInputViewSet setRestorableResponder:]:发送到解除分配的实例0x7d6659b0的消息

Dil*_*mar 4 iphone objective-c ios xcode6 ios8

这只发生在IOS 8 iPhone应用程序中,该应用程序与以前的版本一起工作正常.来到这个问题,我有一个表视图,其中包含文本字段和其他单元格.textfield的所有代表都已实现.现在,当我点击文本字段时,会显示键盘.当键盘仍然可见时,我点击另一个单元格,将我带到其他视图,解除键盘.现在,当我点击这个新视图中的后退按钮返回上一个视图时,应用程序崩溃,显示标题中提到的错误消息.这曾经在IOS 7和之前的版本中完美运行.请帮忙.

按要求添加堆栈跟踪.

<_NSCallStackArray 0x802a7b30>(
0   ???                                 0x15daa77d 0x0 + 366651261,
1   Application                         0x002e63f0 main + 0,
2   CoreFoundation                      0x06e12fae _CF_forwarding_prep_0 + 14,
3   UIKit                               0x058bb318 -[UIPeripheralHost(UIKitInternal) _restoreInputViewsWithId:animated:] + 701,
4   UIKit                               0x054cdd7d -[UINavigationController navigationTransitionView:didStartTransition:] + 849,
5   UIKit                               0x054c569b -[UINavigationController _startCustomTransition:] + 3843,
6   UIKit                               0x054d2726 -[UINavigationController _startDeferredTransitionIfNeeded:] + 712,
7   UIKit                               0x054d3372 -[UINavigationController __viewWillLayoutSubviews] + 57,
8   UIKit                               0x0564704c -[UILayoutContainerView layoutSubviews] + 213,
9   UIKit                               0x053cedd1 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 608,
10  libobjc.A.dylib                     0x07cf7771 -[NSObject performSelector:withObject:] + 70,
11  QuartzCore                          0x069bc28f -[CALayer layoutSublayers] + 152,
12  QuartzCore                          0x069b0115 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 397,
13  QuartzCore                          0x069aff70 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 26,
14  QuartzCore                          0x0690e3c6 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 284,
15  QuartzCore                          0x0690f78c _ZN2CA11Transaction6commitEv + 392,
16  QuartzCore                          0x0690fe58 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 92,
17  CoreFoundation                      0x06de59de __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30,
18  CoreFoundation                      0x06de5920 __CFRunLoopDoObservers + 400,
19  CoreFoundation                      0x06ddb35a __CFRunLoopRun + 1226,
20  CoreFoundation                      0x06ddabcb CFRunLoopRunSpecific + 443,
21  CoreFoundation                      0x06dda9fb CFRunLoopRunInMode + 123,
22  GraphicsServices                    0x0865124f GSEventRunModal + 192,
23  GraphicsServices                    0x0865108c GSEventRun + 104,
24  UIKit                               0x053438b6 UIApplicationMain + 1526,
25  Application                         0x002e6491 main + 161,
26  libdyld.dylib                       0x0806cac9 start + 1
)
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到了类似的问题,是的,事实证明文本字段已被解除分配.我通过在推送新视图控制器之前添加对endEditing的调用来修复它在我的代码中:

[self.view endEditing:YES];
[self.navigationController pushViewController:...
                                     animated:YES];
Run Code Online (Sandbox Code Playgroud)