2016-12-19 4 views
0

У меня есть tableView с некоторыми результатами поиска. Я подключил первое и второе представление с помощью «раскадровки Segue» из ячейки во второе представление.Нажмите на ячейку UITableView, а другой вид не отображается

Это код, написанный в первом ViewController:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    let indexPath = self.tableProva.indexPathForSelectedRow?.row 

    let vc = segue.destination as! DettaglioNewViewController 

    vc.titleLibro = posts[indexPath!].name 
    vc.authorLibro = posts[indexPath!].author 
    vc.ISBNLibro = posts[indexPath!].ISBN 

} 

В другом проекте он прекрасно работает, но в этом проекте он не работает, чтобы показать второй ViewController я должен нажать и проведите справа или слева.

Кажется, что проблема является графической. Если я попытаюсь щелкнуть по ячейке, она не станет серой. становится серым, если я долго удерживаю его

Это случилось с кем-то еще?

Может ли кто-нибудь мне помочь?

+0

У вас есть событие tapGesture или другого в вашем контроллере? – Snoobie

+0

Да, как @Snoobie, я думаю, что какой-то другой обработчик захватывает его. –

+0

@Snoobie где я могу его увидеть? – DanieleLanari

ответ

0

Вы должны использовать метод 'didSelectRowAtIndexPath', чтобы перейти к другому представлению для конкретной ячейки. Использовать .....

var storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType)) 

vc = storyboard.instantiateViewControllerWithIdentifier("LoginVC") as DettaglioNewViewController 
vc.loadView() 

..... Чтобы получить необходимую информацию.

* Информация Пример *

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
{ 
    myFavIndex = indexPath.row 
    let storyBoard = UIStoryboard(name: "Main", bundle:nil) 
    let view = storyBoard.instantiateViewControllerWithIdentifier("LoginVC") as! DettaglioNewViewController 
    view.imageURL = self.imageArray[mySelectedIndex] 
    view.titleString = self.titleArray[mySelectedIndex] 
    self.presentViewController(view, animated: true, completion: nil) 
} 

В приведенном выше примере я использую новый вид контроллеров изображение и название, как view.imageURL и view.titleString для заполнения, что просмотр элементов из моей выбранных ячеек информации через [mySelectedIndex]. Вы должны сделать это с помощью Int, UIImage, String, например.

+0

И как я могу передать данные из ячейки во второй просмотр? – DanieleLanari

+0

@ DanieleLanari См. Подробный пример. Я добавил к вопросу. –

+0

кажется, что проблема графическая. Если я попытаюсь щелкнуть по ячейке, она не станет серой. становится серым, если я долго удерживаю его – DanieleLanari

0

Вам не нужно инициализировать контроллер из кода. Просто создайте пользовательский метод segue и вызовите метод executeSegue в методе doSelect для делегата таблицы.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
     self.performSegueWithIdentifier("yourIdentifierInStoryboardForCustomSegue", sender: nil) 
} 
Смежные вопросы