在模态视图上调用present - 尽管调试输出显示它们确实加载,但没有任何显示

时间:2017-05-31 22:41:48

标签: ios swift presentmodalviewcontroller presentviewcontroller

尝试从我的“ModalView”中展示ParentViewController,但模拟器中没有显示

  • ParentViewController.swift (实际上除了样板文件UIViewController代码之外唯一的代码)如下所示:

    override func viewDidAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
         let modalViewController = ModalViewController()
         modalViewController.modalPresentationStyle = .overCurrentContext
         present(modalViewController, animated: true, completion: nil)
    }
    
  • 我的故事板包含以下内容:

    • ParentViewController

      • Defines Context = True
      • Provides Context = True
    • Segue

      • Kind:以模态呈现
      • Presentation:当前背景
    • ModalViewController

      • Presentation:当前背景
  • viewDidLoad中的viewDidAppearModalViewController.swift调试打印语句表明这些语句至少似乎已被执行。

1 个答案:

答案 0 :(得分:1)

问题可能在于此

let modalViewController = ModalViewController()

你正在创建一个没有视图的ViewController实例,所以它是空白的,这就是为什么你在屏幕上看不到任何内容,如果你的ViewController来自故事板,你必须使用像storyboard.instantiateViewController(withIdentifier: "ModalViewController")这样的东西,如果它来自代码,必须将构造代码放在loadView()