2016-03-17 2 views
0

шаги:Swift Table View Controller Segue не работает автоматически

  1. Создан новый сингл вид проекта
  2. Удаляется по умолчанию вид контроллера
  3. Добавлен новый Table View Controller
  4. Embedded ТВЦ в навигации контроллер
  5. Добавлен ребенок TVC
  6. Добавлены файлы пользовательских классов и связанные с каждым TVC
  7. Создано Показать SEGUE от первого ТВЦ ребенка
  8. Осуществленные необходимые методы, #of разделов, # строк, cellForRowAtIndexPath

Все учебники я наблюдал и читать онлайн включать только шаги I выше, а segues начинают работать нормально. Тем не менее, в моем случае я не могу заставить его работать, пока я не добавить следующее:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     performSegueWithIdentifier("detail", sender: tableView) 
} 

Я совершенно нормально с внедрением метода didSelectRowAtIndexPath, если это требуется. Мне просто интересно, не хватает ли чего-то, потому что он работает автоматически во всем, что я видел в Интернете.

Заранее благодарен!

+1

Чтобы заставить его работать без необходимости использования метода делегата, вы должны перетащить 'segue' из ячейки в' Подробный контроллер просмотра ', вы, скорее всего, перетащите 'segue' из' controller' в 'detail' – sbarow

+0

Я убедился, что перетащил из ячейки в контроллер. Хотелось бы, чтобы все было так просто.:) – GED125

ответ

0

Благодарю всех вас за ваши вклады. Я понял, что проблема в том, что в функции tableView cellForRowAtIndexPath отсутствует следующее.

let cell = self.tableView.dequeueReusableCellWithIdentifier("custom", forIndexPath: indexPath) as! CustomCell 

У меня была эта строка, прокомментированная, главным образом потому, что я понятия не имею, что она делает. :)

0

Если нажать на SEGUE (раскадровки) и в боковом меню вы должны присвоить текст «деталь» из

performSegueWithIdentifier("detail", sender: tableView) 

на Шифр ​​ поле.

Как изображение ниже

enter image description here

Edit:

Попробуйте код, приведенный выше, rembember изменить NAME_OF_THE_DETAIL_VIEW_CONTROLLER на ваш деталь ViewController.

В этом коде мы устанавливаем я установить «себя» перед performSegueWithIdentifier. И когда нажата кнопка, вы установите segue.destinationViewController на новый ViewController.

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    self.performSegueWithIdentifier("detail", sender: indexPath); 
} 


override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if (segue.identifier == "detail") { 
     var detailView = segue.destinationViewController as! NAME_OF_THE_DETAIL_VIEW_CONTROLLER 
    } 
} 
+0

Сделал это ... помните, что все это работает, если я добавлю didSelectRowAtIndexPath. – GED125

+0

@ GED125 Я отредактировал свой ответ с новым возможным решением. Попробуйте использовать это. – marchiore

Смежные вопросы