Changed to ask UINavigationController directly for preferredContentSize
Removed animations for keyboard stuff because it doesn't animate correctly.