【问题标题】:Open URL in different ViewController when tableView cell is pressed按下 tableView 单元格时在不同的 ViewController 中打开 URL
【发布时间】:2023-03-11 03:45:01
【问题描述】:

我在我的应用程序中使用 SWRevealViewController 作为滑出式菜单。主视图控制器包含一个用于打开 URL 的 WKWebView。当按下滑出按钮时,会出现一个表格视图控制器。

我希望在滑出式菜单的表视图控制器中的表视图单元格中显示网站的名称,并在按下单元格时在主视图控制器的 WKWebView 中打开该网站。

这似乎是一个简单的问题,但我似乎无法在网上找到任何相关信息。

提前感谢您的帮助。

【问题讨论】:

    标签: ios swift uitableview wkwebview swrevealviewcontroller


    【解决方案1】:

    据我记得 SWRevealViewController 的实现,它使用static table view

    如果您对包含链接的static table view 没问题,那么您可以创建一个delegate 方法,该方法将根据在表View Controller 上选择的单元格进行调用。该代表将通知您的ViewController 并说明要打开哪个链接。

    希望很清楚。如果您需要更多详细信息,请告诉我。

    【讨论】:

    • 我是表格视图的新手,所以我不确定不同的类型。但是,我创建了一个示例项目,其中表格视图单元格是从数组中填充的,因此我将创建一个包含几个不同网站的数组并从中填充表格视图。例如,我可以有一个数组 [facebook.com,Twitter.com] 并将单元格 0 和 1 设置为等于数组中的值。然后我可以创建 url,但我卡住的地方是使用 wkwebview 在另一个视图控制器中打开 url。您能否解释一下我如何将 url 传递给另一个视图控制器?
    • @ScottB。请检查代表模式。如前所述,它会帮助你。这方面的教程真的很多。他们比我在这里为您编写快速代码要好得多。主要思想是您需要从 Table ViewController 通知 Second View Controller 被点击的单元格。希望对您有所帮助。
    【解决方案2】:

    在 SideMenuViewController 中(视图控制器中包含带有链接的表)

    public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    
    let mainViewController  = MainViewController()
    mainViewController.link = linksArray[indexPath.row]
    self.revealViewController().setFrontViewController(mainViewController, animated: true)
    
    }
    
    1. 初始化具有 WKWebView 的新主视图控制器
    2. 将链接作为属性传递
    3. 将该视图控制器设置为新的前视图控制器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      相关资源
      最近更新 更多