0

我遇到了一个问题,我有一个忘记密码的选项,我在其中放置了一个带有输入字段的 UIAlertView。

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Forgot Password?"
                                                        message:@"Please enter your username to retrieve password"
                                                       delegate:self
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:@"Ok", nil];
    [alertView setAlertViewStyle:UIAlertViewStylePlainTextInput];
    [alertView show];

当应用程序启动时,它运行良好,但是当我登录、执行各种操作、退出并按“忘记密码”时,我收到此错误并且我的应用程序崩溃:

*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“将 -updateConstraints 发送到 <_UIKeyboardLayoutAlignmentView: 0x7ffef5b37b00; 后布局约束仍需要更新;帧 = (0 0; 0 0); 用户交互启用 = 否;层=>。_UIKeyboardLayoutAlignmentView 或其超类之一可能已覆盖 -updateConstraints 而不调用 super。或者,某些东西可能在更新它们的过程中弄脏了布局约束。两者都是编程错误。

这是完整的日志:

*** First throw call stack:
(
    0   CoreFoundation                      0x000000010e850c65 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x000000010e4e9bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x000000010e850b9d +[NSException raise:format:] + 205
    3   UIKit                               0x000000010f2c5427 -[UIView(AdditionalLayoutSupport) _internalUpdateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 467
    4   UIKit                               0x000000010f2c553e -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 124
    5   CoreFoundation                      0x000000010e757354 CFArrayApplyFunction + 68
    6   UIKit                               0x000000010f2c52ed -[UIView(AdditionalLayoutSupport) _internalUpdateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 153
    7   UIKit                               0x000000010f2c553e -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 124
    8   CoreFoundation                      0x000000010e757354 CFArrayApplyFunction + 68
    9   UIKit                               0x000000010f2c52ed -[UIView(AdditionalLayoutSupport) _internalUpdateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 153
    10  UIKit                               0x000000010f2c553e -[UIView(AdditionalLayoutSupport) _updateConstraintsIfNeededAccumulatingViewsNeedingSecondPassAndViewsNeedingBaselineUpdate:] + 124
    11  UIKit                               0x000000010f2c5a0e __60-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]_block_invoke + 96
    12  Foundation                          0x000000010e0891be -[NSISEngine withBehaviors:performModifications:] + 155
    13  UIKit                               0x000000010f2c56d6 -[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded] + 231
    14  UIKit                               0x000000010f2b8ebe -[UIWindow(UIConstraintBasedLayout) updateConstraintsIfNeeded] + 91
    15  UIKit                               0x000000010f2c5dde -[UIView(AdditionalLayoutSupport) _updateConstraintsAtEngineLevelIfNeeded] + 146
    16  UIKit                               0x000000010ecbd56a -[UIView(Hierarchy) layoutBelowIfNeeded] + 340
    17  UIKit                               0x000000010f05245e -[_UIAlertControllerAnimatedTransitioning animateTransition:] + 672
    18  UIKit                               0x000000010ed57a4e __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 1867
    19  UIKit                               0x000000010ec6d62c _applyBlockToCFArrayCopiedToStack + 314
    20  UIKit                               0x000000010ec6d4a6 _afterCACommitHandler + 533
    21  CoreFoundation                      0x000000010e783ca7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    22  CoreFoundation                      0x000000010e783c00 __CFRunLoopDoObservers + 368
    23  CoreFoundation                      0x000000010e779a33 __CFRunLoopRun + 1123
    24  CoreFoundation                      0x000000010e779366 CFRunLoopRunSpecific + 470
    25  GraphicsServices                    0x00000001126c9a3e GSEventRunModal + 161
    26  UIKit                               0x000000010ec49900 UIApplicationMain + 1282
    27  Univet                              0x000000010d83150f main + 111
    28  libdyld.dylib                       0x000000011017a145 start + 1
    29  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

我正在使用IQKeyboardManager在文本字段之间导航。

请指导,您的指导将不胜感激。

先感谢您。

4

1 回答 1

1

经过简单的谷歌搜索,我找到了您问题的答案。

在 iOS 8.3 上,如果您正在显示键盘,然后您尝试显示具有输入字段的 UIAlertView 或 UIAlertController,您将遇到此崩溃。

于 2015-06-03T08:05:10.537 回答