@ivanm38

Не открывает DetailView по тапу на TableView?

По сути не отрывает вью с детальным описанием продукта по тапу на тейблвью
данные подгружаются с Parse.com

вот кусок кода тейблвью
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
     
        let detailview = segue.destinationViewController as! DetailView
        
        if let indexPath = self.tableView.indexPathForSelectedRow {
            _ = Int(indexPath.row)
            print(indexPath.row)
            detailview.currentObject = (indexPath.row as! PFObject)
        }
    }


вот код детаилвью
class DetailView: UIViewController {

    var currentObject : PFObject?

    
    @IBOutlet weak var name: UILabel!
    @IBOutlet weak var opysanie: UITextView!
    @IBOutlet weak var price: UILabel!
    @IBOutlet weak var image: UIImageView!
    
    
    override func viewDidLoad() {
        super.viewDidLoad()

        if let object = currentObject {

            name.text = object["name"] as? String
            opysanie.text = object["opisanie"] as? String
            price.text = object["price"] as? String
        }
  
    }
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
Flanker_4
@Flanker_4
У Вас там что-то странное происходит. IndexPath содержит индексы выбранной ячейки, типа выбрана ячейка 2 секции 3. А Вы же кастите ее к своему внутреннему обьекту насильно. В свифте использование as! Ну чертовски нежелательно. Если оно появилось, значит что то не так и нужно переписать.
По проблеме, Вам нужно вытащить нужный обьект, тот который Вы пушите в ячейку в методе tableView:cellForIndexPath(по памяти пишу)

detailView.currentObject = data[indexPath.row]

Но проблема может быть любая другая. При том коде что у Вас оно должно падать. Если не открывается, то смотрите , заходит ли оно в методы
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@castroy10
Данные из parse.com достаются через PFQuery
let object = PFQuery(className: "ваше имя класса")
далее вам нужно определить, на каком продукте пользователь осуществил тап, и по этому ключевому значению вытаскивать данные из parse.com через
object.whereKey
object.findObjectsInBackgroundWithBlock
Коллеги, поправьте меня, если я не прав.
Ответ написан
@ivanm38 Автор вопроса
Господа разработчики!
вообщем теперь приложение не вылетает
но и на деталвью нифига не отображает

вот код, подскажите что не так?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if(segue.identifier == "DetailSegue"){
            // check for / catch all visible cell(s)
            if let indexPath = self.tableView.indexPathForSelectedRow {
                let object: String = testarray[indexPath.row]
                (segue.destinationViewController as! DetailView).currentObject = object as? PFObject
                
            }        }
    }

и
var currentObject : PFObject?

    
    @IBOutlet weak var name: UILabel!
    @IBOutlet weak var opysanie: UITextView!
    @IBOutlet weak var price: UILabel!
    @IBOutlet weak var image: UIImageView!
    
    
    override func viewDidLoad() {
        super.viewDidLoad()

        if let object = currentObject {

            name.text = (object["name"] as! String)
            opysanie.text = object["opisanie"] as! String
            price.text = (object["price"] as! String)
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы