以编程方式设置 rootViewController 时出现奇怪的行为。我只使用xib,这里是我已经尝试过的场景。当我使用此代码时,在正确加载 VC 之前会出现一小段黑屏闪烁。
- (void)setRootVC:(UIViewController *)viewController {
UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
[UIView transitionWithView:window
duration:0.0
options:UIViewAnimationOptionTransitionNone
animations:^{ window.rootViewController = viewController; }];
}
当我使用不同的功能时,它消除了眨眼,但还有另一种奇怪的行为。我在新的 VC 中得到了一堆文本字段,我将其中一个设置为becomeFirstResponder
inviewDidLoad
方法,但是当 VC 加载时,它textFieldDidEndEditing
被调用,这很奇怪。这是代码。
- (void)setRootVC:(UIViewController *)viewController {
UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
[UIView transitionFromView:window.rootViewController.view
toView:viewController.view
duration:0.0
options:UIViewAnimationOptionTransitionNone
completion:^(BOOL finished){
window.rootViewController = viewController;
}];
}
我受到 Objective-C 的限制,因此快速的解决方案将无济于事。感谢您的回复。