我在我的项目中遇到此异常,我不知道要解决它。
Terminating app due to uncaught exception 'NSGenericException', reason: 'Unable to install constraint on view. Does the constraint reference something from outside the subtree of the view? That's illegal. constraint:<NSLayoutConstraint:0x1e583670 UIDatePicker:0x1f83c590.bottom == UIControl:0x1e582160.bottom> view:<UIControl: 0x1e582160; frame = (0 0; 320 504); autoresize = W+H; layer = <CALayer: 0x1e5822a0>>'
基本上,我的应用程序中有2个屏幕(视图控制器)。我为此使用了导航控制器。
在我的第一个屏幕中,我有两个textfields
,一个UIDatePicker
和一个UIButton
,它们会将用户发送到下一个屏幕(视图)。点击文本字段时,它会显示UIDatePicker而不是通常的键盘,让用户输入日期
我是通过在viewDidLoad方法中编写此代码来完成此操作的:
// Set the input way for the date textfields
[startDateTextField setInputView:datePicker];
[endDateTextField setInputView:datePicker];
两个文本域共享一个UIDatePicker
(不重要,它是开始/结束日期的事情)。此外,运行应用程序时也会隐藏UIDatePicker。只有当文本框当前为firstResponder
当我点击文本字段,通过UIDatePicker输入日期,点击按钮进入下一个屏幕,然后点击返回按钮返回主屏幕时,会发生异常。
但是,当我点击按钮进入下一个屏幕而不点击文本字段并激活UIDatePicker时,我没有收到任何异常消息。所以这肯定是我如何使用UIDatePicker的问题?
我通过xib拖放创建了UIDatePicker。我没有以编程方式创建它。
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
点按下一个按钮,尝试关闭日期选择器。用[self.view endEditing:YES];听起来没有正确清理日期选择器。