我的UIButton
中有一个UICollectionViewCell
,它从JSON获取数据。现在我需要从每个按钮打开一个URL(每个按钮都有一个不同的URL,也来自JSON)。
我设法用以下内容打开网址:
let weburl = "http://example.com"
UIApplication.shared.openURL(URL(string: weburl)!)
但现在我需要通过网址传递每个按钮。有关如何实现这一目标的任何想法?
答案 0 :(得分:1)
您可以拥有一系列网址:
// waves hands vigorously
const TourComponent = (props) => {
if (props.currentStep) return <TourStep ...props.currentStep />;
return null;
}
然后将每个按钮的tag属性分配给其对应url的索引。现在您可以轻松管理您想要的内容:
let urls = [url1, url2, ...]
修改强>
其他解决方案是将url存储在单元格本身中,并在按钮处理程序中打开与其单元格对应的url。
答案 1 :(得分:0)
在iOS 10中不推荐使用FYI openURL。如果您需要支持旧版本的ios,我建议如下:
let url = URL(string: "alexa://")!
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:], completionHandler: {
(success) in
guard success else {
//Error here
}
//Success here
})
} else {
if let success = UIApplication.shared.openURL(url) {
//Success here
} else {
//Error here
}
}
否则只需使用UIApplication.shared.open。另外,我会向您传递给tableViewCell的数据模型添加一个URL字段,然后只从模型中查找URL。