2016-03-11 4 views
-2

ПРЕДИСЛОВИЕ: Извините за любые ошибки здесь, я все еще довольно новичок в программировании и стараюсь учиться!Быстрая перезагрузка данных в контроллерах табличных представлений

После первоначального хранения следующих данных в два отдельных файлах мне удалось загрузить каждый набор данных в отдельный виде таблицы с Segue до перехода между ними:

class PcTableViewController: UITableViewController { 

//SI. Initialises pcs with an empty array of objects to store PC details. 
var pcs = [Pc]() 

//SI. Creates data in a function "loadTestPcs". 
func loadTestPcs() 
{ 
    let pic1 = UIImage(named: "MON1") 
    let pc1 = Pc(image: pic1, name: "PC1", graphics: "Radeon R7", cpu: "A6", hdd: 1, ssd: 0, ram: 8, sku: 4643466, price: 499.99) 

    let pic2 = UIImage(named: "PC2") 
    let pc2 = Pc(image: pic2, name: "PC2", graphics: "Radeon R7", cpu: "A6", hdd: 1, ssd: 0, ram: 8, sku: 4643466, price: 549.99) 

    let pic3 = UIImage(named: "PC3") 
    let pc3 = Pc(image: pic3, name: "PC3", graphics: "Radeon R7", cpu: "A6", hdd: 1, ssd: 0, ram: 8, sku: 4643466, price: 599.99) 

    //SI. adds details stored in pc1,2 and 3 to pcs array. 
    // 
    pcs += [pc1!, pc2!, pc3!] 
} 

и

class monitorTableViewController: UITableViewController { 

//SI. Initialises monitors with an empty array of objects to store PC details. 
var monitors = [Monitors]() 

//SI. Creates data in a function "loadTestMonitors". 
func loadTestMonitors() 
{ 
    let pic1 = UIImage(named: "MON1") 
    let mon1 = Monitors(image: pic1, name: "Acer Pedator", screenSize: "24", resolution: "A6", details: "IPS ZeroFrame Gaming Widescreen Monitor", sku: 4643466, price: 499.99) 

    let pic2 = UIImage(named: "MON2") 
    let mon2 = Monitors(image: pic2, name: "PC2", screenSize: "Radeon R7", resolution: "A6", details: "TN G-Sync 144Hz Gaming Widescreen LED Monitor", sku: 4643466, price: 549.99) 

    let pic3 = UIImage(named: "MON3") 
    let mon3 = Monitors(image: pic3, name: "PC3", screenSize: "Radeon R7", resolution: "A6", details: "IPS SuperWidescreen LED Monitor", sku: 4643466, price: 599.99) 

    //SI. adds details stored in pc1,2 and 3 to monitors array. 
    // 
    monitors += [mon1!, mon2!, mon3!] 
} 

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

После того, как я прочитал учебник по яблочному продукту и просмотрел документацию по столу, я замер.

Если кто-то может помочь я был бы очень благодарен :)

+0

Итак, если вы правильно поняли, в настоящее время у вас есть два контроллера табличного представления, но вы хотите иметь только один, который сначала отображает первый набор данных, а затем второй? –

+0

Непонятно, что вы пытаетесь сделать. Я не понимаю, что вы подразумеваете под «перезагрузкой при выборе строки». Вы говорите, что tableView перезагружается каждый раз, когда кто-то забирает строку в этой таблице? – ryantxr

+0

@TimVermeulen да, точно. – worc

ответ

0

Вы действительно не должны использовать тот же самый вид таблицы, как это. Вместо этого создайте два отдельных контроллера табличных представлений с помощью segue из ячейки первого представления таблицы во второй контроллер.

+0

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

+0

'override func tableView (tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { // SI. после создания seague на главной раскадровке self.performSegueWithIdentifier («ShowMonitorsSeague», отправитель: indexPath) } ' – worc

+0

Это был код, который я использовал для выполнения segue. Segue выполняется, но во втором представлении таблицы нет данных. – worc

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