Reputation: 1082
After some research on the web without success, I come here to ask you the question about my warning.
Actually, I have a view V1 with a navigation controller and I want to push a modal view V2 when V1 has finished loading.
So I use the performSegueWithIdentifier
method (I'm using storyboard).
Here is my code:
[self performSegueWithIdentifier:@"showConnexionViewSegue" sender:self];
And when I compile, I got this warning:
Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x6849b30>
Can anyone help me?
Upvotes: 26
Views: 38792
Reputation: 2183
'Unbalanced calls to begin/end appearance transitions for '
Says an animation is started before the last related animation isnt done. So, are you popping any view controller before pushing the new one ? Or may be popping to root ? if yes try doing so without animation i.e. [self.navigationController popToRootViewControllerAnimated:NO];
And see if this resolves the issue, In my case this did the trick.
Upvotes: 5
Reputation: 660
The reasons for this are manifold and are very specific to the context and the programming. For example, what I was doing was
What i discovered is that if I DO NOT have the instructions for these 3 steps one after the other (if I mix them up), then I get the error "Unbalanced calls...". Also, if I time the push of the viewcontroller to less than 1.4 seconds, I get the message as well.
So, check that the sequence and timing of your program instructions are correct.
Upvotes: 1
Reputation: 8653
I had this problem, but what I had done is on a UIViewController
I had linked a Segue from a UIButton
and also coded it into a nextBtnPressed:
function, so I was actually pushing two new UIViewControllers
on the one button press. Limiting it to just the one segue fixed it. But it took some investigating to see that I had done this double up.
Upvotes: 5
Reputation: 30846
It sounds like you may be performing the segue in -viewWillAppear:
thus generating two -viewWillAppear:
messages without 2 corresponding -viewDidAppear
messages.
Try performing the segue in -viewDidAppear
.
Upvotes: 58