2015-08-13 2 views
3

Я пытаюсь последовательно выбирать таблицы таблиц. Я слежу за документацией и другой ссылкой здесь, но она не работает. Я не получаю ошибку, просто не выбираю строки.selectRowAtIndexPath не работает в swift

Примечание: на данный момент я просто пытаюсь выбрать одну строку вручную.

Я правильно использую делегаты, источник данных и NSIndexPath?

override func viewDidLoad() { 
     super.viewDidLoad() 

    var myPath = NSIndexPath(forRow: 1, inSection: 0) 
    myTableView.selectRowAtIndexPath(myPath, animated: false, scrollPosition: UITableViewScrollPosition.None) 

enter image description here

+0

Когда загружается 'UITableView'? – Larme

ответ

5

Вполне вероятно, что табличное не готов или не заселена в то время viewDidLoad называется.

Попробуйте в viewDidAppear или viewWillAppear вместо:

override func viewDidAppear(_ animated: Bool){ 
    let myPath = NSIndexPath(row: 1, section: 0) 
    tableView.selectRow(at: myPath as IndexPath, animated: false, scrollPosition: UITableViewScrollPosition.none) 
} 
+0

Удивительный помощник! Это сработало! – GuiSoySauce

+0

Если вы переопределите этот метод, вы должны вызвать super в какой-то момент вашей реализации. –

0

Попробуйте использовать super:

super.tableView(self.tableView, selectRowAtIndexPath: myPath, animated: false, scrollPosition: UITableViewScrollPosition.None) 
0

Вы должны попытаться использовать метод UITableView didSelectRowAtIndexPath. Он должен работать лучше, чем в viewDidLoad.

0

Существует проблема с UITableViewScrollPositionNone, если вид в настоящее время не виден и в течение viewDidLoad/viewWillAppear это все еще нет. Вы можете использовать UITableViewScrollPositionMiddle для прокрутки до некоторой ячейки в этом случае.

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