1

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 にたくさんのテキスト フィールドがあり、そのうちの 1 つをbecomeFirstResponderinviewDidLoadメソッドに設定していますが、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 に制限されているため、迅速な解決策は役に立ちません。返信ありがとうございます。

4

1 に答える 1