I'm seeing a weird crash when I call [self.navigationController popViewControllerAnimated:YES];
in a delegate callback after selecting an item from a table view. No trace is printed to the console in Xcode - but this is the stack available in the system Console - any ideas?
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x94f5e332 __kill + 10
1 libsystem_kernel.dylib 0x94f5d932 kill$UNIX2003 + 32
2 CoreFoundation 0x01c9876b CFHash + 43
3 CoreFoundation 0x01c8f8b4 __CFDictionaryStandardHashKey + 36
4 CoreFoundation 0x01cbce9c CFBasicHashRemoveValue + 1148
5 CoreFoundation 0x01cca669 CFDictionaryRemoveValue + 185
6 Foundation 0x011a3162 -[NSISEngine setIntegralizationAdjustment:forMarker:] + 50
7 Foundation 0x011a97ec -[NSISEngine removeConstraintWithMarker:] + 651
8 Foundation 0x011b388e -[NSLayoutConstraint _removeFromEngine:] + 277
9 UIKit 0x00a80d36 -[UIView(UIConstraintBasedLayout) _layoutEngine_willRemoveLayoutConstraint:] + 64
10 UIKit 0x005ac2ae __48-[UIScrollView _setAutomaticContentConstraints:]_block_invoke_0 + 181
11 Foundation 0x011a8733 -[NSISEngine withAutomaticOptimizationDisabled:] + 57
12 UIKit 0x00a80a5c -[UIView(UIConstraintBasedLayout) _withAutomaticEngineOptimizationDisabled:] + 63
13 UIKit 0x005ac1bb -[UIScrollView _setAutomaticContentConstraints:] + 122
14 UIKit 0x005ac9ca -[UIScrollView _rememberDependentConstraint:] + 123
15 UIKit 0x00a8ce60 ___updateViewDependenciesForConstraint_block_invoke_0 + 51
16 UIKit 0x00a80cee _updateViewDependenciesForConstraint + 224
17 UIKit 0x00a80bea -[UIView(UIConstraintBasedLayout) _layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:] + 202
18 UIKit 0x00a80da7 -[UIView(UIConstraintBasedLayout) _tryToAddConstraintWithoutUpdatingConstraintsArray:roundingAdjustment:mutuallyExclusiveConstraints:] + 61
19 UIKit 0x00594be4 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 447
20 UIKit 0x005a081f -[UIScrollView _didMoveFromWindow:toWindow:] + 65
21 UIKit 0x0059505d -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1592
22 UIKit 0x0059505d -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1592
23 UIKit 0x005905e6 -[UIView(Hierarchy) _postMovedFromSuperview:] + 157
24 UIKit 0x00596af4 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1784
25 UIKit 0x0058eeed -[UIView(Hierarchy) addSubview:] + 56
26 UIKit 0x007c58a9 -[UINavigationTransitionView transition:fromView:toView:] + 513
27 UIKit 0x007c56a0 -[UINavigationTransitionView transition:toView:] + 55
28 UIKit 0x00641c61 -[UINavigationController _startTransition:fromViewController:toViewController:] + 2344
29 UIKit 0x00641eab -[UINavigationController _startDeferredTransitionIfNeeded:] + 386
30 UIKit 0x006433d6 _popViewControllerNormal + 280
31 UIKit 0x00643675 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 449
32 UIKit 0x0c53b780 -[UINavigationControllerAccessibility(SafeCategory) _popViewControllerWithTransition:allowPoppingLast:] + 143
33 UIKit 0x00642625 -[UINavigationController popViewControllerAnimated:] + 57
Update
I'm pretty sure this is an internal auto-layout issue like the one posted here: Strange Crash when dismissing view controller, auto-layout to blame?
I guess I'll just switch back to struts and springs.....
You are trying to cut the branch of tree by standing on it :)
If you want to pop the view controller which is currently displaying on the screen. You can simply do this:
[self.navigationController popViewControllerAnimated:YES];
where ever you have called the delegate ,just after that you can call
[self.navigationController popViewControllerAnimated:YES]
to go to the previous controller,but if u have to go to different controller then get the reference of that controller and use
[self.navigationController popToViewController:referenceOfYourVC animated:YES]
[self.navigationController popViewControllerAnimated:YES];
Above code should not bring an error but wen you pop a view from the stack, the dealloc method of the view would automatically called. I believe you might have some memory related issues or you are releasing some zero retain count object in the dealloc method of the view.
Yep problem was some sort of bug/issue with auto-layout. I'm not sure what is is, but I've run into this issue elsewhere with system added controls (like the cancel button on a UISearchBar). I Converted the whole project to struts and it works with all the same code.
I'll wait until auto-layout's been around a bit longer before converting back.
Strange Crash when dismissing view controller, auto-layout to blame?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.