我需要創建一個包含垂直堆棧視圖的視圖,該視圖包含一個Label,一個TableView,另一個Label和一個Button(按降序排列)。我一直在努力配置TableView,因爲我無法讓它填充單元格(目前在超級視圖中顯示爲空格)。現在,我有一個主視圖ViewController - 'YourOrderViewController' - 和TableView的TableViewController - 'OrderItemsTableViewController'。它看起來像這樣:如何填充UIViewController子視圖的UITableView?
主要看
class YourOrderViewController: UIViewController{
var cellTitle = String()
var cellSubtitle = String()
@IBOutlet weak var orderListTable: UITableView!
let orderTableController = OrderItemsTableViewController()
override func viewDidLoad() {
super.viewDidLoad()
orderListTable.delegate = orderTableController
orderListTable.dataSource = orderTableController
}
而且TableView中子視圖
class OrderItemsTableViewController: UITableViewController {
var drinkOrderList = [Drink]()
var foodOrderList = [Food]()
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
if section == 0 {
return drinkOrderList.count + foodOrderList.count + 1
} else {
return 0
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "OrderItemCell", for: indexPath)
if indexPath.row < drinkOrderList.count {
cell.textLabel?.text = drinkOrderList[indexPath.row].drinkName
} else if indexPath.row - drinkOrderList.count < foodOrderList.count {
cell.textLabel?.text = foodOrderList[indexPath.row].foodName
} else {
print("Also here")
cell = tableView.dequeueReusableCell(withIdentifier: "AddToOrderCell", for: indexPath)
}
return cell
}
我最初試圖使整個事情在一個視圖控制器,這是委託和數據的UIViewController UITableView的來源,但是這也沒有效果。任何幫助表示讚賞。
對不起,我不能看到你的OrderItemsTableViewController.view添加到你的視圖層次結構 –