fix UIViewController's life cycle methods calling timing and performance tuning