Swift:Storyboard:当UIVabBarController

时间:2015-12-01 12:32:56

标签: swift uicollectionview uitabbarcontroller uistoryboard

我使用UICollectionViewUITableView作为UIViewController的子项UITabBarController时发现了一个非常奇怪的错误。

想象一下以下设置: Storyboard Overview

正如您所看到的,我们有UITabBarController包含ViewControllers MostViewedViewControllerMostRecentViewController

MostViewedViewController包含UIButton,点击后会"Show"-Segue MostRecentViewController

MostRecentViewController包含UITableView,其中包含带有重用标识符mostRecentCellIdentifier的“原型单元格”。 ViewController的类与'UITableViewDataSource'连接,包含以下代码:

import UIKit
import Foundation

class MostRecentViewController : UIViewController {
    private let kReuseIdentifier = "mostRecentCellIdentifier"

    @IBOutlet private weak var tableView: UITableView!

    internal var dataArray : [Int]? {
        didSet {
            tableView.reloadData()
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        dataArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    }
}

extension MostRecentViewController : UITableViewDataSource {
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataArray?.count ?? 0
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return tableView.dequeueReusableCellWithIdentifier(kReuseIdentifier, forIndexPath: indexPath)
    }
}

现在,当我打开应用程序时,TabBarViewController显示MostViewedViewController。如果我点击按钮,我会看到以下内容(这应该如何):

TabBarController - > CKICK - > MostRecentViewController 1

但是当我使用MostRecentViewController切换到TabBar时,UITableViewCells具有正确的背景颜色但不包含任何已定义的子视图(为什么它们不显示??? ):

MostRecentViewController 2

以下是EXAMPLE XCODE PROJECT

的链接

该问题可能与THIS ONE

有关

1 个答案:

答案 0 :(得分:0)

在上述星座中使用大小类时似乎存在错误。要解决此问题,请选择Storyboard,然后打开File-Inspector选项卡:

File Inspector

然后取消选中Storyboard的以下选项:

Size Classes