Я создаю приложение, где мне нужно иметь ссылки на URL-адрес внутри моего таблицы. Мой вопрос заключается в том, как я могу использовать одну ячейку, ведущую к одному веб-сайту и другой ячейке, ведущей к другому сайту. Если у вас есть какие-либо вопросы, я оставляю их в комментариях ниже.UITableViewCell Pushing to Url
ответ
У вас есть контроллер, который настраивает таблицу через UITableViewDataSource
и UITableViewDelegate
, правильно? Вы можете или, может быть, уже реализуете tableView(UITableView, didSelectRowAt: IndexPath)
, а именно, как выполнить некоторый код, когда пользователь нажимает на вашу ячейку.
Возможно, у вас также есть список объектов URL (let myURLs: [URL] = ...
), на которые вы хотите нажать. Вы можете получить URL-адрес, который вы ищете, с помощью indexPath
, переданного в функции (если весь вид таблицы - это один раздел, это будет только myURLs[indexPath.row]
; если у вас есть разделы, вам нужно выяснить, какой URL-адрес является правильным). Откройте URL с UIApplication.shared.open(url)
.
Вы можете использовать этот метод Tableview Делегирование как это:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let url = URL(string: "http://www.google.com")!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
Примечание: Не для получения Реализовать протокола UITableViewDelegate
Это замечательно, но я делаю массив ячеек таблицы, и мне нужно, чтобы каждая ячейка переходила на другой URL-адрес, в зависимости от названия или имени ячейки, как я могу сделать это с кодом, который вы предоставили. @Sour LeangChhean – Luc
вы можете использовать это: пусть клетка = tableView.cellForRow (по адресу: indexPath) охранник пусть адрес = ячейка .textLabel .text еще {возвращение} пусть URL = URL? (Строка: адрес)! –
Вы можете увидеть на моей картинке @Luc –
Вы можете сделать это с помощью нажимной Segue
func prepare(for segue: NSStoryboardSegue, sender: Any?) {
if segue.identifier == "Push" {
//This refers to the second view controller
let vc = segue.destination as! yourSecondViewController
//selected indexPath
let indexPath = self.tableView.indexPathForSelectedRow
//gets the url from that array indexPath
let object = urlArray[indexPath!.row]
//create a variable called url in your second view controller and call it like this
vc.url = object
}
}
В вашем втором контроллере просмотра используйте переменную url, но вы хотите.
Я думаю, что это работа для вас
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
let urlName = self.arrUrlName[indexPath.row]
//self.arrUrlName : whatever your array name, i hope your array contains only url
let url = URL(string: urlName)
UIApplication.shared.openURL(url)
}
Это основной вопрос. Для этого есть тонны учебных пособий. Что ты уже испробовал ? –