2

UITabBarController is the root in may application. The root of each tab is different UINavigationViewController on which I am pushing UITableViewController's.

The problem is that when I press on the back button the navigation bar animates, but the previous table view appears instantly without animation. Neither UITableViewController nor UINavigationViewController is sub-classed and I have no any custom code for pop functionality.

Some time ago, when I was working on the other iOS application, I had not such problem. The only difference is that now I am working with XCode 4 and iOS 5 SDK.

I have spent a lot to find the answer but haven't found anything similar.

Any clue?

Andrey
  • 311
  • 2
  • 13

3 Answers3

2

I was struggling with this myself for quite a while. In my case the problem ended up being me accidentally overriding viewDidAppear and not calling [super viewDidAppear:animated] in my custom UITabBarController class.

Once I got rid of that the issue finally went away.

sbezboro
  • 113
  • 2
  • 8
  • Thanks, for the response. I have finally found the problem: I have set accidentally my root navigation view to be subview of the window [self.window addSubview:rootController.view]; rather than self.window.rootViewController = rootController; Once I have fixed it the problem gone:) – Andrey Mar 13 '12 at 20:48
0

Do not do any UI updation task in background thread or dispatch asyncq background queue in ios 7 ,if you are doing any ui related task then do it in main queue.Eg.

        dispatch_async(dispatch_get_main_queue(), ^
                       {
                       //update ui
                       }

This will solve navigation controller animation related issue.

user3441955
  • 161
  • 1
  • 1
  • 3
0

I have finally found the problem: I have set accidentally my root view to be subview of the window

[self.window addSubview:rootController.view];

rather than

self.window.rootViewController = rootController;

Once I have fixed it the problem gone:)

Andrey
  • 311
  • 2
  • 13