2017-02-03 5 views
-1

Я создаю приложение, где мне нужно иметь ссылки на URL-адрес внутри моего таблицы. Мой вопрос заключается в том, как я могу использовать одну ячейку, ведущую к одному веб-сайту и другой ячейке, ведущей к другому сайту. Если у вас есть какие-либо вопросы, я оставляю их в комментариях ниже.UITableViewCell Pushing to Url

+0

Это основной вопрос. Для этого есть тонны учебных пособий. Что ты уже испробовал ? –

ответ

0

У вас есть контроллер, который настраивает таблицу через UITableViewDataSource и UITableViewDelegate, правильно? Вы можете или, может быть, уже реализуете tableView(UITableView, didSelectRowAt: IndexPath), а именно, как выполнить некоторый код, когда пользователь нажимает на вашу ячейку.

Возможно, у вас также есть список объектов URL (let myURLs: [URL] = ...), на которые вы хотите нажать. Вы можете получить URL-адрес, который вы ищете, с помощью indexPath, переданного в функции (если весь вид таблицы - это один раздел, это будет только myURLs[indexPath.row]; если у вас есть разделы, вам нужно выяснить, какой URL-адрес является правильным). Откройте URL с UIApplication.shared.open(url).

0

Вы можете использовать этот метод 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

enter image description here

+0

Это замечательно, но я делаю массив ячеек таблицы, и мне нужно, чтобы каждая ячейка переходила на другой URL-адрес, в зависимости от названия или имени ячейки, как я могу сделать это с кодом, который вы предоставили. @Sour LeangChhean – Luc

+0

вы можете использовать это: пусть клетка = tableView.cellForRow (по адресу: indexPath) охранник пусть адрес = ячейка .textLabel .text еще {возвращение} пусть URL = URL? (Строка: адрес)! –

+0

Вы можете увидеть на моей картинке @Luc –

0

Вы можете сделать это с помощью нажимной 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, но вы хотите.

0

Я думаю, что это работа для вас

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) 
}