将NIT中的UITableView加载到ViewController中

时间:2017-03-16 11:37:10

标签: swift uitableview uiview

我已创建

  1. 带有.xib文件的UITableViewCell的Cocoa Touch Class子类
  2. UIView(.xib文件)并将UITableView放入该视图并为其提供UIView类
  3. 现在我想要UITableViewCell与UTableView(在UIView * .xib文件中)的链接,然后将此视图加载到viewController中。
  4. 首先加载generalViewController,然后添加UIVIew的personSubView,其中有tableView,它在personSubView中加载另一个personCellView。 谁有人建议我从哪里去? 感谢

2 个答案:

答案 0 :(得分:2)

你需要在tableview中注册单元格然后你可以正常使用。

let nib = UINib(nibName: String(describing: yourNibCellClass.self), bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "yourNibCellIdentifier")

答案 1 :(得分:1)

<强> 1。细胞

您应该注册xib文件,以便在tableView中使用它:

 override func viewDidLoad() {
        super.viewDidLoad()
        tableView.registerNib(UINib(nibName: "YourCustomCellXibName", bundle: nil), forCellReuseIdentifier: "YourCustomCellReuseIdentifier")
    }

您可以使用的笔尖名称(将来会减少错误):

String(describing: YourCustomCellClass.self)

在UITebleViewDataSource方法中:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("YourCustomCellReuseIdentifier", forIndexPath: indexPath) as! YourCuctomCellClass
    return cell
}

<强> 2。的TableView

/*  Load tableView from xib */

/*  During the loading process, this method unarchives object,
    initializes it, sets its properties to it's configured values,
    and reestablishes any connections to other objects
 */
let nib = Bundle.main.loadNibNamed("TableViewXibName", owner:self, options: nil)

/* Check if we don't get a nil */
if let tableView: CustomTableView = nib?.first as? CustomTableView {

    /* Add tableView to the viewcontroller */
    self.view.addSubview(tableView)
}