Заявление об ограничении ответственности: новичок в этом, и я опишу проблему в меру моих возможностей.
Я создаю приложение, которое состоит из TableView с неделями с 1 по 8. Когда пользователь делает выбор, приложение переходит в ViewController, который выглядит одинаково для каждого выбор. Однако кнопки в этом втором контроллере представления должны отправлять пользователя по URL-адресу, указанному c для выбранной недели. Прямо сейчас приложение показывает одни и те же ссылки для каждой выбранной недели. Мне в основном нужно каждую неделю иметь набор уникальных URL-адресов, соответствующих этой неделе.
Мой код прилагается, и я также пытаюсь прикрепить фото-схему того, что это приложение должно делать.
import UIKit
struct WeekInfo {
let description: String
let url: URL
}
class WeekTableViewController: UITableViewController {
var week = [
WeekInfo(description: "Week 0:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 1:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 2:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 3:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 4: ", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 5:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 6:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 7:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Week 8:", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Final Prep", url: URL(string: "https://somewhere.com")!),
WeekInfo(description: "Final Project", url: URL(string: "https://somewhere.com")!)
]
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
}
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
return week.count
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedWeek = week[indexPath.row]
performSegue(withIdentifier:"moveToWeekDetail", sender:selectedWeek)
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel?.text = week[indexPath.row].description
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
if let weekViewController = segue.destination as? WeekDetailViewController{
// Pass the week's info onto the detail view controller
if let selectedWeek = sender as? WeekInfo {
weekViewController.title = selectedWeek.description
weekViewController.week = selectedWeek
}
}
}
Контроллер следующего вида:
import UIKit
class WeekDetailViewController: UIViewController {
var week: WeekInfo!
@IBOutlet weak var lessonCompleteBtn: UIButton!
@IBOutlet weak var Button1: UIButton!
@IBOutlet weak var Button2: UIButton!
@IBOutlet weak var Button3: UIButton!
@IBOutlet weak var Button4: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
lessonCompleteBtn.backgroundColor = UIColor.gray
lessonCompleteBtn.layer.cornerRadius = 20
}
@IBAction func lessonBtnTapped(_ sender: AnyObject) {
sender.setTitle("Complete!", for: [])
if lessonCompleteBtn.backgroundColor == UIColor.gray{
lessonCompleteBtn.backgroundColor = UIColor(red: 17/255, green: 107/255, blue: 0/255, alpha: 1.0)
}
else if lessonCompleteBtn.backgroundColor == UIColor(red: 17/255, green: 107/255, blue: 0/255, alpha: 1.0){
sender.setTitle("Mark Complete", for: [])
lessonCompleteBtn.backgroundColor = UIColor.gray
}
}
@IBAction func Button1(_ sender: Any) {
UIApplication.shared.open(URL(string: "https://resourelink1.com")! as URL, options: [:], completionHandler: nil)
}
@IBAction func Button2(_ sender: Any) {
UIApplication.shared.open(URL(string: "https://resourcelink2.com")! as URL, options: [:], completionHandler: nil)
}
@IBAction func Button3(_ sender: Any) {
UIApplication.shared.open(URL(string: "https://resourcelink3.com")! as URL, options: [:], completionHandler: nil)
}
@IBAction func Button4(_ sender: Any) {
UIApplication.shared.open(URL(string: "https://resourcelink4.com")! as URL, options: [:], completionHandler: nil)
}
}