Navigation bar shows wrong navigation item.

Originator:B.H.Carpenter
Number:rdar://24535291 Date Originated:05-Feb-2016
Status:Open Resolved:
Product:iOS SDK Product Version:iOS 9.2 (13C75)
Classification:UI/Usability Reproducible:Always
 
Brandon Carpenter05-Feb-2016 04:23 PM

Summary:
After getting into the bad state, a UINavigationController's navigationBar will initially show the correct UINavigationItem, but then will revert to the previous UINavigationItem every time a UIViewController is pushed onto the stack.

Steps to Reproduce:
1. Push a UIViewController onto a UINavigationController stack
2. Set navigationBarHidden = YES on the navigation controller
3. Push another view controller onto the navigation stack.
4. Begin an interactive pop transition and then cancel it.
5. Pop back to the previous view controller
6. Set navigationBarHidden = NO on the navigation controller
7. Attempt to push a view controller onto the stack

The attached sample project has step by step instructions as well.

Expected Results:
The navigation controller's navigation bar displays the current topViewController's navigation item.

Actual Results:
The navigation controller's navigation bar displays the current topViewController's navigation item while transitioning, but then reverts to the previously shown navigation item when the animation finishes.

Version:
iOS 9.2 (13C75)

Notes:
Looks like -[UINavigationBar _cancelInteractiveTransition] is getting called, even on push transitions after getting into this state? I can set a breakpoint on that symbol, and the navigation bar shows the correct navigation item before it and the wrong navigation item afterwards.

Configuration:
iPhone 5s 16GB AT&T, using WIFI

Attachments:
'Sample.zip' was successfully uploaded.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!