我有一个UINavigationController嵌套的实例UITabBarController.我使用导航控制器到达某个视图控制器(标签栏仍然可见),从中我切换到第二个视图控制器(标签栏不再可见).
在第二个视图控制器中,只要我调用:
[self.navigationController setToolbarHidden:NO]
应用程序冻结并且内存增长,直到OOM异常崩溃.
我承认不建议将导航控制器嵌套在标签栏中,但是这个设置似乎在iOS 11之前正常工作.
编辑:当停止执行时,我看到很多调用:
UIView(UIConstraintBasedLayout)
UIView(AdditionalLayerSupport)
NSLayoutConstraint
这是完整的堆栈跟踪
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x0000000106dd895c libobjc.A.dylib`objc_msgSend
+ 28
frame #1: 0x00000001067b6b9b Foundation`-[NSConcreteMapTable removeObjectForKey:] + 138
frame #2: 0x00000001069e6019 Foundation`_substituteOutAllOccurencesOfBodyVar + 1282
frame #3: 0x00000001067f3c5b Foundation`-[NSISEngine tryAddingDirectly:] + 144
frame #4: 0x00000001067f332f Foundation`-[NSISEngine tryToAddConstraintWithMarker:expression:integralizationAdjustment:mutuallyExclusiveConstraints:]
+ 440
frame #5: 0x00000001069f2067 Foundation`-[NSLayoutConstraint _addLoweredExpression:toEngine:integralizationAdjustment:lastLoweredConstantWasRounded:mutuallyExclusiveConstraints:]
+ 273
frame #6: 0x00000001067ea601 Foundation`-[NSLayoutConstraint _addToEngine:integralizationAdjustment:mutuallyExclusiveConstraints:] + 240
frame #7: 0x0000000109c9488d UIKit`__57-[UIView(AdditionalLayoutSupport) …Run Code Online (Sandbox Code Playgroud)