具有表视图的视图仅适用于默认的View Controller

时间:2017-07-06 07:09:28

标签: ios swift uitableview

我的app中需要一个设置屏幕,我打算使用简单的静态表格视图创建。不幸的是我碰到了一个问题。当我将自定义视图控制器分配给故事板中的视图时,视图表在运行时变黑。

faulty static table example

尽管视图控制器没有改变默认行为。此时我只覆盖一个方法,将“设置”字符串放在标题中。

import Foundation
import UIKit

class SettingsViewController: UITableViewController {

    override func loadView() {
        self.title = "Settings"
    }

}

当我删除自定义视图控制器时,表格正常显示。 correct table

我使用以下代码进入视图。

guard let vc = UIStoryboard(name:"Main", bundle:nil).instantiateViewController(withIdentifier: "settingsViewController") as? UITableViewController else { // or SettingsViewcontroller for the first version
                print("Could not instantiate view controller with identifier of type SettingsViewController")
                return
            }            
self.navigationController?.pushViewController(vc, animated:true)

什么可能导致这个问题?

1 个答案:

答案 0 :(得分:2)

你必须拨打super.loadView(),你正在覆盖UITableViewController's loadView()并且没有调用超类方法,因为你的黑屏已经出现了。

import Foundation
import UIKit

    class SettingsViewController: UITableViewController {

        override func loadView() {
            self.title = "Settings"
            super.loadView()
        }

    }