Выберите ячейку в разделе TableView

Я искал ответ о том, как это сделать, но ничего не кажется прямым, или пользователь хочет сделать что-то другое (например, выбрать несколько ячеек).

Справочная информация: я делаю приложение о поиске цитат каждый день для разных профессий, таких как чтение, садоводство, спорт. У меня есть UITabBarController с 3 вкладками.
Первая вкладка = Цитата; Вторая вкладка = Категории; Третья вкладка = Настройки *

Вкладка "Настройки" представляет собой UITableView с 3 разделами и 2 ячейками в каждом разделе.

Проблема: я хочу, чтобы каждая клетка направлялась в другое место. Первая ячейка в первом разделе будет просто контроллером представления с ползунком (ползунок цвета, чтобы изменить цвет текста)(перейдем к этому позже). Как я смогу достичь этого?

import UIKit

class settingsTab: UIViewController, UITableViewDelegate {

struct Objects {
    var sectionName : String!
    var sectionObjects : [String]!

}

var objectsArray = [Objects]()




override func viewDidLoad() {
    super.viewDidLoad()
    objectsArray = [Objects(sectionName: "Options", sectionObjects: ["Change color of text" , "Notifications"]),Objects(sectionName: "Extras", sectionObjects: ["Remove ads" , "Restore purchases"]),Objects(sectionName: "Support", sectionObjects: ["Rate this app" , "Email developer"]), Objects(sectionName: "Jordan Norris - Quote Daily 2016", sectionObjects: [])]



}

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell!

    cell.textLabel?.text = objectsArray[indexPath.section].sectionObjects[indexPath.row]


    cell.backgroundColor = UIColor.cyanColor()

    return cell


}

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return objectsArray[section].sectionObjects.count
}

 func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return objectsArray.count

}

func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?{
    return objectsArray[section].sectionName
}


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


}






}

Это settingsTab.swift, где установлен TableViewController. Если вам нужна дополнительная информация, просто прокомментируйте, что бы вы хотели добавить, и я немедленно отредактирую этот пост. Заранее спасибо!

2 ответа

Решение

Изменится ли количество разделов и элементов в разделе? Если нет, то создание статических ячеек и подключение каждой ячейки к другому месту назначения может быть выполнено без кода (все в Интерфейсном Разработчике).

Вы можете получить доступ к каждому разделу и каждой строке через вашу последнюю функцию didSelectRowAtIndexPath с помощью indexPath.section а также indexPath.row, Например, если вы хотите получить доступ ко второму разделу и первой строке, вы можете сделать

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    print("Section \(indexPath.section), Row : \(indexPath.row)")
    if indexPath.section == 1 && indexPath.row == 0{
        //Code to implement View Controller to remove adds
        print("Remove Adds")
    }
}

Попробуйте выбрать каждую строку, чтобы показать, какую часть она печатает и какую строку.

Другие вопросы по тегам