在swift中转换为UITableViewController时出现黑屏

时间:2015-06-01 23:06:26

标签: ios uitableview swift uiviewcontroller tableview

所以我有一个2屏应用程序全部工作,一个主ViewController和另一个ViewController,它按下按钮。这一切都很好,但仍然可以。

然后我创建了一个新的ViewController,向其添加了一个TableView,嵌入了一个导航控制器并设置了我的表。我创建了一个segue,通过按下textField来实现。一切正常,但偶尔,当它应该转向TableView VC时,它只显示一个黑屏。没有报告错误,屏幕只是黑色,它永远不会改变。但有时候一切都很好。它似乎出现在我以某种方式改变了表格之后。更令人讨厌的是,当它在模拟器上工作时,如果我然后尝试将构建运行到我的设备(iPhone 6),当segue发生时仍然有黑屏。我真的不知道哪些代码对你有用,所以请问你是否想看一些代码。我将代码放在tableView的VC上。

import UIKit

class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UINavigationBarDelegate {

@IBOutlet private weak var tableView: UITableView!

var countryPicker = ["Colombia", "England", "France", "Germany", "Brazil", "Austria", "Spain", "Australia", "USA", "Berlin", "Thailand", "Northern Ireland", "New Zealand", "Hawaii", "Switzerland", "Sweeden", "Finland", "Turkey", "Russia", "Netherlands", "Japan"]


override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.rowHeight = 50
    self.tableView.backgroundView = UIImageView(image: UIImage(named: "TblBackground"))

}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return countryPicker.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell

    if (indexPath.row % 2 == 0) {

        cell.backgroundColor = UIColor.clearColor()

    } else {

        cell.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.2)

        cell.textLabel?.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.0)

    }

    var imageView: UIImage! = UIImage(named: "Australia")
    cell.imageView?.image = imageView
    cell.imageView?.highlightedImage = UIImage(named: "Australia1")

    cell.textLabel?.text = countryPicker[indexPath.row]

    cell.textLabel?.textColor = UIColor.whiteColor()

    return cell
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    var cell = tableView.cellForRowAtIndexPath(indexPath)
    cell!.accessoryType = UITableViewCellAccessoryType.Checkmark
    cell?.textLabel!.textColor = UIColor.blueColor()

}

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {

    var cell = tableView.cellForRowAtIndexPath(indexPath)
    cell!.accessoryType = UITableViewCellAccessoryType.None
    cell?.textLabel!.textColor = UIColor.whiteColor()

}

} 

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

为什么会发生这种情况仍然没有合理的理由 - 但是完全清理构建文件夹已经阻止了它的发生。因此,如果您遇到同样的问题,请尝试以下方法:

  1. 在Xcode中,转到顶部栏并选择“产品”
  2. 当列表出现时,您将看到“清除”选项。
  3. 按住alt键,该选项将更改为“Clean build folder”
  4. 点击“清除构建文件夹”