美文网首页
iOS present viewcontroller界面不全屏

iOS present viewcontroller界面不全屏

作者: 清风_____ | 来源:发表于2020-05-14 11:08 被阅读0次

    设置 modalPresentationStyle

    let mainViewController = UIView()  // 即需要被present的view
    mainViewController.modalPresentationStyle = .fullScreen
    self.present(mainViewController, animated: true, completion: nil)
    
    UIViewController *vc1 = [[UIViewController alloc] init];    // vc1即需要被present的viewcontroller
    vc1.modalPresentationStyle = 0;
    [self presentViewController:vc animated:YES completion:nil];
    

    presentViewController 半透明 变黑

    MSTestViewController *vc = [[MSTestViewController alloc] init];
    
    vc.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
    
    float version = [UIDevice currentDevice].systemVersion.floatValue;
    
    if (version < 8.0) { // iOS 7 实现的方式略有不同(设置self)
    
    self.modalPresentationStyle = UIModalPresentationCurrentContext;
    
    // iOS8以下必须使用rootViewController,否则背景会变黑
    
    [self.view.window.rootViewController presentViewController:vc animated:YES completion:^{
    
    }];
    
    } else { // iOS 8 以上实现(设置vc)
    
    vc.modalPresentationStyle = UIModalPresentationOverCurrentContext|UIModalPresentationFullScreen;
    
    //如果控制器属于navigationcontroller或者tababrControlelr子控制器,不使用UIModalPresentationFullScreen 的话, bar 会盖住你的modal出来的控制器
    
    [self presentViewController:vc animated:YES completion:^{
    
    // 也可以在这里做一些完成modal后需要做得事情
    
    }];
    }
    

    https://www.jianshu.com/p/4f96d078f1f3
    https://www.jianshu.com/p/4cd8df54ed0d

    相关文章

      网友评论

          本文标题:iOS present viewcontroller界面不全屏

          本文链接:https://www.haomeiwen.com/subject/eywunhtx.html