Tableviewcells действия xcode - PullRequest
       1

Tableviewcells действия xcode

0 голосов
/ 23 июня 2018

, поэтому я сейчас создаю приложение TODO. в настоящее время возникают проблемы, из-за которых мои tableView ячейки кликабельны или «перекидываются». Я запускаю симулятор, и кажется, что код не работает полностью. Я продолжаю нажимать на каждую клетку, и она ничего не делает. Я хочу, чтобы каждый элемент TODO в каждой ячейке был кликабельным и переходил на сайт ask.com для поиска в моем коде. Но похоже, что эта конкретная функция не работает, и я не знаю, что делать. если бы кто-то мог решить эту проблему для меня, было бы здорово. Исходный код был бы потрясающим. Заранее спасибо. также я новичок в коде. Я "**" часть кода, я думаю, что это неправильно и не работает. Я попытался использовать делегат didSelectRowAt, если это правильно, возможно, это также связано с размещением кода, но опять же я не уверен. Я включил все актуальное. Спасибо

import UIKit
class NewTableViewController: UITableViewController, NewCellDelegate, {
    var news:[News]!

    override func viewDidLoad() {
        super.viewDidLoad()

        loadData()

        func loadData() {
            news = [News]()
            news = DataManager.loadAll(News.self).sorted(by: {$0.createdAt < $1.createdAt})
            self.tableView.reloadData()

        }

        @IBAction func Save(_ sender: Any) {
            let addAlert = UIAlertController(title: "ADD", message: "TODO", preferredStyle: .alert)
            addAlert.addTextField { (textfield:UITextField) in
                textfield.placeholder = "TODO"
            }

            addAlert.addAction(UIAlertAction(title: "Save", style: .default, handler: { (action:UIAlertAction) in
                guard let title = addAlert.textFields?.first?.text else {return}
                let newsave = News(title: title, completed: false, createdAt: Date(), itemIdentifier: UUID())
                newsave.saveItem()
                self.news.append(newsave)

                let indexPath = IndexPath(row: self.tableView.numberOfRows(inSection: 0), section: 0)

                self.tableView.insertRows(at: [indexPath], with: .automatic)


            }))

            addAlert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

            self.present(addAlert, animated: true, completion: nil)

        }

    };

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return news.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! NewTableViewCell
        cell.delegte = self

        let news = self.news[indexPath.row]

        cell.label.text = news.title

        return cell
    }

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath:
            NSIndexPath) {
        //getting the index path of selected row
        let indexPath = tableView.indexPathForSelectedRow

        //getting the current cell from the index path
        let currentCell = tableView.cellForRow(at: indexPath!)! as UITableViewCell

        //getting the text of that cell
        let TODO = currentCell.textLabel!.text

        let appURL = NSURL(string: "https://www.ask.com/web?q=\
            (TODO))&o=0&qo=homepageSearchBox)")

        if UIApplication.shared.canOpenURL(appURL! as URL) {
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(appURL! as URL, options: [:], completionHandler: nil)
            } else {
                UIApplication.shared.openURL(appURL! as URL)
            }

        }
    }
}

Ответы [ 2 ]

0 голосов
/ 23 июня 2018

Используйте этот метод:

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

А также установите его делегат и источник данных,

tableView.delegate = self tableView.dataSource = self

0 голосов
/ 23 июня 2018

Вы используете неправильный метод didselect, используйте ниже одного

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{'your code'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...