2016-06-01 5 views
0

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

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

Вкладка «Настройки» представляет собой UITableView с тремя разделами и 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) { 


} 






} 

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

ответ

3

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

+0

Спасибо. Работал. У меня возникла проблема, когда он сказал, что статические ячейки доступны только для UIViewControllers, но я решил это. –

3

Доступ к каждой секции и каждой строке осуществляется через последнюю функцию 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") 
    } 
} 

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

+0

Благодарим вас за помощь. –

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