2014-10-28 76 views
4

这仅在IOS 8 iPhone应用程序中发生,该应用程序在之前的版本中运行良好。来问题, 我有一个表视图,其中包含文本字段和其他单元格。 textfield的所有代表都已实现。现在,当我点击文本字段时,显示键盘。虽然键盘仍然可见,但我点击另一个单元,它将我带到其他视图,解除了键盘。现在,当我点击这个新视图中的后退按钮以返回到先前的视图时,该应用程序崩溃,显示标题中提到的错误消息。 这用于在IOS 7和以前的版本中完美地工作。请帮忙。IOS 8: - [UIInputViewSet setRestorableResponder:]:发送到释放实例的消息0x7d6659b0

按照问题添加堆栈跟踪。

<_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 
) 
+0

您可以添加完整的堆栈跟踪吗? – 2014-10-28 12:59:54

+0

@MahmoudAdam:添加堆栈跟踪 – 2014-10-29 12:28:20

回答

5

我也有类似的问题,是的,它变成了ŧ他正在释放文本字段。我通过在推送新视图控制器之前添加对endEditing的调用,将其固定在我的代码中:

[self.view endEditing:YES]; 
[self.navigationController pushViewController:... 
            animated:YES]; 
+0

这是为我修复的,我在控制器上使用[self setEditing:NO],但失败了。 – beno1604 2014-12-01 15:34:13

+0

为我工作。或者,您可以在视图控制器的viewWillDisappear方法中调用“endEditing”。 – 2014-12-17 11:23:59

1

我认为问题是,当到下一个视图的转换完成后, 所以这将是更好地了解它为什么被释放并防止 所以请检查下列夫妇的TextInput被释放问题采取了问题的更深入的观点:

How to debug “message sent to deallocated instance” in Xcode4?

ViewController respondsToSelector: message sent to deallocated instance (CRASH)

+0

我得到了问题。如果我直接将文本字段作为子视图添加到单元格的contentview,就会发生这种情况。创建自定义单元格已修复。谢谢。 – 2014-10-31 05:29:09