尝试使用在 SafariViewController 中启动链接的 tableviewcells 在 swift 中创建选项卡式应用程序

Trying to create a tabbed application in swift with tableviewcells that launch Links in SafariViewController

我是新手,遵循了 Apple 网站上 swift 的入门指南。

我正在尝试创建一个选项卡式应用程序,每个选项卡都是一个价格范围的礼物,每个礼物都是一个 tableviewcell,有自己的图像和标签。我还希望能够单击 tableviewcell 打开带有 link 的 SFSafariViewController 直接在线访问该礼物。

到目前为止,我已经能够创建选项卡式应用程序,为每个选项卡创建 table 视图和单元格作为静态列表,使用图像和标签设置 tableviewcells,但我对如何制作它感到困惑,以便单击每个 tableviewcell 在应用程序中打开一个 URL。

只是想看看有没有人做过类似的事情或者可以帮助我。到目前为止,我已经在故事板中完成了几乎所有的工作,如果存在故事板解决方案那将是非常棒的。如果没有,任何帮助都会很棒。谢谢!

你想做的是利用tableView:didSelectRowAtIndexPath:。这是一个 UITableViewDelegate 方法,只要单击一个单元格就会被调用。您可以做的是检查所选单元格的 IndexPath.row,并创建一个 SFSafariViewController 的实例来打开相应的 URL:

import SafariServices
import UIKit

class YourViewController: UITableViewController {

    ...

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        var controller: SFSafariViewController!
        switch indexPath.row {
        case 0:
            let url = URL(string: "www.website1.com")!
            controller = SFSafariViewController(url: url)
        case 1:
            let url = URL(string: "www.website2.com")!
            controller = SFSafariViewController(url: url)
        default:
            break
        }
        present(controller, animated: true, completion: nil)
    }
}