Dark shadow on navigation bar during segue transition after upgrading to Xcode 5.1 and iOS 7.1

self.navigationController.view.backgroundColor = [UIColor whiteColor];

I solved this problem by setting the background color of the navigation controller's view.


self.navigationController.navigationBar.translucent = NO; 

For Newer Swift Versions:

navigationController?.navigationBar.isTranslucent = false

nonamelive's answer is perfect. To achieve the same thing in Interface Builder AND STILL KEEP TRANSLUCENCY, select the navigation controller and set a user defined runtime attribute view.backgroundColor as shown in the screenshot (in the Identity Inspector). Repeat for all navigation controllers that show this problem.

It seems that this whole problem occurs because the black color (or actually, no color) of UINavigationController is leaking through at the time CoreGraphics snapshots it at animation begin. So, setting it to white will prevent that.

Identity Inspector -> User Defined Runtime Attributes