a practice of UIViewController api