协助区分URL和Tableview数据

问题描述 投票:1回答:1

免责声明,对此不熟悉:我正在开发一个应用程序,该应用程序为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
            }
        }
    }
ios swift xcode uitableview didselectrowatindexpath
1个回答
0
投票
/// 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! }
© www.soinside.com 2019 - 2024. All rights reserved.