在连接到xib文件的UIViewController中无法识别子视图

时间:2018-07-23 10:02:36

标签: swift xcode uiviewcontroller xib subview

我有一个连接到xib文件的UIViewController swift文件(我在创建viewController时单击了create xib)。现在,它在主视图中无法识别任何子视图。

在调试时写“ po self.view.subviews”时。它返回0。所有子视图(一个tableView和textView以及label)= nil。我什至创建了一个新项目,仍然遇到相同的错误。 我在这里无所适从。

这是我的AboutUsViewController swift文件中的代码:

导入UIKit

导入基金会

关于AboutUsViewController的类:UIViewController,UITableViewDelegate,UITableViewDataSource {

@IBOutlet weak var textView: UITextView! 

@IBOutlet weak var contactsTableView: UITableView!

let items = ["Item 1", "Item2", "Item3", "Item4"]


override func viewDidLoad() {
    super.viewDidLoad()
    let NibName = UINib(nibName: "ContactUsTableViewCell", bundle: nil)
    contactsTableView.register(NibName, forCellReuseIdentifier: "ContactUsTableViewCell")

    // Do any additional setup after loading the view.®
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
}
*/
// MARK: - Table view data source

func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return items.count
}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if (indexPath.item == 0) {
        let cell = tableView.dequeueReusableCell(withIdentifier: "ContactUsTableViewCell", for: indexPath) as! ContactUsTableViewCell
        cell.label.text = "HIII"
        return cell

    } else {
        let cell = tableView.dequeueReusableCell(withIdentifier: "ContactUsTableViewCell", for: indexPath) as! ContactUsTableViewCell
        cell.label.text = items[indexPath.item]
        return cell
    }
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if (indexPath.item == 0) {
        return 200
    } else {
        return 86
    }
}

}

my swift file

my xib file

1 个答案:

答案 0 :(得分:0)

确保像这样加载vc

let vc = AboutUsViewController(nibName: "AboutUsViewController", bundle: nil)
self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()