视图控制器未正确显示

Posted

技术标签:

【中文标题】视图控制器未正确显示【英文标题】:View Controller not showing properly 【发布时间】:2016-08-05 06:50:08 【问题描述】:

我有 4 个视图控制器,其中 3 个运行良好。 它们都有自己的 .swift 文件,并使用故事板链接。 最后一个视图控制器没有正确显示,尽管没有什么可以阻止它这样做。

这是调用最后一个视图控制器的文件的摘录:

func showBook()

    self.presentViewController(BookViewController(), animated: true, completion: nil)

这是被调用的文件:

import UIKit

class BookViewController: UIViewController 

    override func viewDidLoad() 
        super.viewDidLoad()
        print("BookViewController")
    


代码不会抛出任何错误,打印“BookViewController”,如果我以编程方式设置视图的背景颜色,它就可以正常工作。但它不显示情节提要中设置的内容。

这是我的故事板的截图(仅相关部分):

注意:所有其他视图控制器都没有以编程方式显示,而是使用“呈现模式” - segue。当我尝试使用“当前模态”时 - 与最后一个视图控制器继续,它也可以正常工作

【问题讨论】:

【参考方案1】:

您需要设置视图控制器的 Storyboard ID,并使用 self.storyboard?.instantiateViewControllerWithIdentifier("theIdentifier") 而不是使用构造函数创建 BookViewController

【讨论】:

因为如果您使用支持 xib 或故事板,ios 必须为您创建视图【参考方案2】:

我自己不使用storyBoards,但是您的身份检查员课程呢?

确保选择 ViewController 而不是您的 View(当您单击情节提要中的视图时自动选择)。 The difference between them is a blue rectangle around your app when the view controller is selected.

【讨论】:

以上是关于视图控制器未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

模态视图导航栏未正确显示

UITabBar 图标未正确显示

在未实例化的视图控制器上设置徽章值的正确方法?

Laravel 中的返回视图未显示正确的 URL

标签栏控制器未正确显示

Swift 4 UIPageViewController 未显示正确的视图(按顺序在数组中定义