【发布时间】:2016-03-26 10:41:49
【问题描述】:
我想在 xib 文件中创建一个 UITableView,所以我有一个自定义警报(简单警报),并且有自定义视图,它们在 xib 中。所以我在 xib 文件的视图中创建了一个 UITableView,但问题是我显示警报并且它没有显示任何数据。我是 xib.files 的新手,所以我不知道我做错了什么。它对 xib.files 很陌生,因为当我在视图中添加一个按钮时,我会在点击时打印一个文本,它会打印任何东西,所以按钮没有反应。 BookTableView 和子视图和视图与文件所有者绑定。
有人知道我做错了什么吗? 谢谢你的帮助。
这是我的使用自定义视图显示警报的代码:
@IBAction func PlayTapped(sender: AnyObject) {
let AlertView = TableViewAlertController(nibName: "TableViewAlertController", bundle: nil)
let AlertTableView = SimpleAlert.Controller(view: AlertView.view, style: .Alert)
showAlert(AlertTableView)
}
这里是来自 ViewController 的带有 xib.file TableView 的代码:
import UIKit
import SimpleAlert
class TableViewAlertController: UIViewController {
let items = ["item1", "item2", "item3", "item4"]
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
override init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
subView = UIView()
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
convenience init() {
self.init(nibName: "TableViewAlertController", bundle: nil)
}
@IBOutlet var subView: UIView!
@IBOutlet var BookTableView: UITableView!
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel!.text = items[indexPath.row]
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Table Cell clicked")
}
}
感谢您的帮助:)
【问题讨论】:
-
你是否为 UITableview 设置了委托?
-
是的,从 TableView 到文件所有者、委托和数据源。
-
所以您的表格视图显示在警报中,但其中没有显示数据?还有你在用“subView”做什么,你以编程方式和通过 IBOutlet 创建它
-
当然,警报中有一个Cutomview,其中有一个tableview,他显示tableview,但没有显示其中的数据,所以项目。我需要子视图来初始化 xib 的视图。
-
这是 IBOutlet 的问题??我只知道将它与 xib.file 连接起来。
标签: swift uitableview xib