尝试使用在 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)
}
}
我是新手,遵循了 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)
}
}