Я настроил следующий экран в InterfaceBuilder
:
Подключено IBOutlets
и необходимые функции для соответствия UITableViewDelegate
и UITableViewDataSource
протоколы. Еще не так много функциональности - просто структура, с которой можно начать. Вот код ViewController:
class HomeViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var AllCoopsLabel: UILabel!
@IBOutlet weak var RecentCoopsLabel: UILabel!
@IBOutlet weak var LatestNotificationsLabel: UILabel!
@IBOutlet weak var OpenCoops: UILabel!
@IBOutlet weak var CompletedCoops: UILabel!
@IBOutlet weak var Earnings: UILabel!
@IBOutlet weak var OpenCoopsLabel: UILabel!
@IBOutlet weak var CompletedCoopsLabel: UILabel!
@IBOutlet weak var EarningsLabel: UILabel!
@IBOutlet weak var ShowAllCoopsButton: UIButton!
@IBOutlet weak var ShowAllNotificationsButton: UILabel!
@IBOutlet weak var RecentCoopsTable: UITableView!
@IBOutlet weak var LatestNotificationsTable: UITableView!
let apiService = APIService()
var parentController: TabBarController?
var user: User?
override func viewDidLoad() {
super.viewDidLoad()
RecentCoopsTable.dataSource = self
RecentCoopsTable.delegate = self
LatestNotificationsTable.dataSource = self
LatestNotificationsTable.delegate = self
let token = UserDefaults.standard.string(forKey: "authtoken")!
self.apiService.getUserFromAuthtoken(token: token, completion: {result in
switch result {
case .success(let user):
DispatchQueue.main.async {
self.user = user
self.parentController = self.tabBarController as? TabBarController
self.parentController?.user = user
Globals.shared.user = user
}
case .failure(let error):
print("An error occured \(error.localizedDescription)")
}
})
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("Was here")
let coopCell = tableView.dequeueReusableCell(withIdentifier: "RecentCoopsViewCell", for: indexPath) as! CoopViewCell
coopCell.CoopName.text = "foo bar"
return coopCell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
@IBAction func showAllCooperationsButtonPressed(_ sender: Any) {
print("showAllCooperationsButtonPressed")
}
@IBAction func showAllNotificationsButtonPressed(_ sender: Any) {
print("showAllNotificationsButtonPressed")
}
}
class CoopViewCell: UITableViewCell {
@IBOutlet weak var CoopName: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
class NotificationViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
Как я вижу, я должен увидеть 3 строки таблицы с надписью "foo bar". Но я не Просто возьмите это.
Также не получено 3 ожидаемых журналов консоли «Был здесь». Что я пропустил?