Ok there are many ways to do this. one is to alter - (void)applicationDidFinishLaunching:(UIApplication *)application and put up a splash screen to hide the pending mainView/scrollView which will appear underneath. then insert the view we want to use under the splashView, so there are three views layered there the splashview, the transitionContainer view, and the mainView/scrollView. %%(language-ref) self.transitionContainer = [[UINavigationController alloc] initWithRootViewController: self.webViewController]; [self.window insertSubview: self.transitionContainer.view belowSubview: splashView]; %% Then in the smalltalk code you have something like %%(language-ref) sharedApplication := (ObjectiveCBridge classObjectForName: #UIApplication) sharedApplication. mainView := sharedApplication delegate mainView. window := sharedApplication delegate window. ... self mainView retain. self mainView resignFirstResponder. self mainView removeFromSuperview. self transitionContainer view becomeFirstResponder. %% In this case we retain the mainView so it won't be released, then resign it's first responder status, then remove from the superview, then indicate our transitionContainer view should be the first responder.