TableView към различни viewControllers с помощта на Segues

Имам таблица с няколко раздела и редове във всеки раздел.

Когато избирам, искам всеки елемент в таблицата да има собствен контролер за изглед. Имам дадени идентификатори за всеки.

Следният код винаги отваря едни и същи нови контролери за изглед, като игнорира моята функция if, за да направи преминаването в зависимост от това коя клетка избира потребителят. В момента тествам само с две, но щом заработи, ще добавя още.

Някой знае ли защо се случва това?

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    if indexPath == 1 {
        self.performSegueWithIdentifier("Belgium", sender: self)

    }
    else {
    self.performSegueWithIdentifier("France", sender: self)
    }

person Mitts123    schedule 17.01.2016    source източник


Отговори (1)


Операторът if не се изпълнява, защото сравнявате indexPath с 1. Това няма да се случи в нито един момент.

Objective-C хвърля предупреждение, казващо несъвместим указател NSIndexPath към int сравнения, докато swift се изпълнява безшумно.

Кодът трябва да бъде

if indexPath.row == 1 { // Or it can be indexPath.section == 1
    //Do Something
}
person Varun    schedule 17.01.2016