Xcode'NSGenericException',原因:'无法在视图上安装约束

时间:2013-10-27 22:39:44

标签: ios objective-c exception constraints uidatepicker

我在我的项目中遇到此异常,我不知道要解决它。

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。我没有以编程方式创建它。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

点按下一个按钮,尝试关闭日期选择器。用[self.view endEditing:YES];听起来没有正确清理日期选择器。