iOS: Warning “attempt to present ViewController whose view is not in the window hierarchy”

前端 未结 4 1762
半阙折子戏
半阙折子戏 2020-12-14 00:05

I am getting following warning when I try to present a ActivityController on navigation controller,

Attempt to present 

        
4条回答
  •  不思量自难忘°
    2020-12-14 00:29

    Analysis: Because the present modal view ViewController class has not been loaded into the window. This is equivalent to the building, second floor haven't built, directly go to cover 3 floor, this is definitely not. Only after load ViewController's view ;

    Python

    - (void)viewDidAppear:(BOOL)animated {
    
     [super viewDidAppear:animated];
    
        [self showAlertViewController];
    
    }
    
    - (void)showAlertViewController {
    
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Hello world" message:@"(*  ̄3)(ε ̄ *)d" preferredStyle:UIAlertControllerStyleAlert];
    
        // Create the actions.
    
        UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"hello" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
            NSLog(@"The \"Okay/Cancel\" alert's cancel action occured.");
        }];
    
        UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"world" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
            NSLog(@"The \"Okay/Cancel\" alert's other action occured.");
        }];
    
        // Add the actions.
        [alertController addAction:cancelAction];
        [alertController addAction:otherAction];
    
        UIWindow *windows = [[UIApplication sharedApplication].delegate window];
        UIViewController *vc = windows.rootViewController;
        [vc presentViewController:alertController animated: YES completion:nil];
    }
    

    This's worked for me.

提交回复
热议问题