0

我在我的项目中遇到了这个异常,我不知道如何解决它。

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

有谁知道如何解决这个问题?

4

1 回答 1

0

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

于 2013-10-28T00:48:53.713 回答