Ted Tomlinson
Ted Tomlinson

Reputation: 783

crash when popping view controller

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.....

Upvotes: 1

Views: 4527

Answers (4)

Ted Tomlinson
Ted Tomlinson

Reputation: 783

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?

Upvotes: 0

MrWaqasAhmed
MrWaqasAhmed

Reputation: 1489

[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.

Upvotes: 2

Wizkid1490
Wizkid1490

Reputation: 76

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]

Upvotes: 2

Muhammad Zeeshan
Muhammad Zeeshan

Reputation: 2451

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];

Upvotes: 4

Related Questions