免责声明,对此不熟悉:我正在开发一个应用程序,该应用程序为TableView中的每个项目提供不同的资源。当用户进行选择时,该应用程序会选择一个新的ViewController。尽管每个TableView选择的viewController都相同,但其中的URL按钮应具有与Tableview选择相对应的不同URL。
我无法在每个tableView数组中编码不同的URL [第0周至第8周]。现在,对于每个tableview选择,View Controller中的按钮都有相同的URL。希望我能解释得足够清楚,但是附带了代码。请让我知道是否需要更多信息。谢谢!
import UIKit
class WeekTableViewController: UITableViewController {
var week = [
"Week 0:",
"Week 1:",
"Week 2:",
"Week 3:",
"Weel 4:",
"Week 5:",
"Week 6:",
"Week 7:",
"Week 8:"]
override func viewDidLoad() {
super.viewDidLoad()
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
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]
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
if let weekViewController = segue.destination as? WeekDetailViewController{
if let selectedWeek = sender as? String{
weekViewController.title = selectedWeek
}
}
}
/// A struct to hold information about each week
/// Add more properties as needed
struct WeekInfo {
let description: String
let url: URL
}
class WeekTableViewController: UITableViewController {
// It's no longer an array of strings
var week = [
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")!),
]
// ...
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
}
}
}
}
class WeekDetailViewController: UIViewController {
// Info about the week
var week: WeekInfo!
}