2015-03-15 1 views
0

Простите меня, но я новичок в коде & Swift.Как связать ячейки динамического прототипа с различными UITableViewControllers?

Невозможно опубликовать изображение, но мне нужно связать мои настраиваемые ячейки прототипа UITableViewController 7 с 7 различными UItableviewcontrollers. До сих пор я пытался перечислить ячейку в другой UITableViewController, но остальные ячейки также ссылаются на одно и то же место. Допустим, если я хочу связать категорию фаст-фудов со списком ресторанов быстрого питания в UITableViewController, каждая другая категория также связывается с одним и тем же UITableViewController.

Я не совсем уверен, что делать.

Мой главный контроллер код выглядит следующим образом:

class CategoriesTableViewController: UITableViewController { 

    var category: [Categories] = categoriesData 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    // MARK: - Table view data source 

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     return 1 
    } 

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return category.count 
    } 

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

       let categories = category[indexPath.row] as Categories 
       cell.textLabel?.text = categories.category 
       if let categoryLabel = cell.viewWithTag(100) as? UILabel { 
        categoryLabel.text = categories.category 
       } 
       return cell 
      } 

Это мой categories.swift файл:

class Categories: NSObject { 
    var category: String 
    init(category: String) { 
     self.category = category 
     super.init() 
    } 
} 

и categories data.swift:

let categoriesData = [Categories(category:"Restaurants/Cafe"), Categories(category:"Fine Dining"), Categories(category:"Catering"),Categories(category:"Buffet"), Categories(category:"Food Court/Hawker Centre"), Categories(category:"Fast Food"), Categories(category:"Others")] 

my categories cell.swift shows the following: 

class CategoriesCell: UITableViewCell { 

    @IBOutlet weak var nameLabel: UILabel! 
} 

ответ

0

Может можно размещать фотографии, чтобы мы могли видеть, о том, почему вы идете по этому маршруту.

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

Я хотел бы предложить:

  1. расколоть вид таблицы в число секций, которые вы хотите (каждая секция может иметь заданное число строк)

  2. создать один класс UITableViewController

  3. в вашем

    переопределить func tableView (tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { }

Установите ваш контент на основе раздела & номер строки

+0

не может опубликовать изображение потому мою репутацию .. лол. Я отредактировал мой вопрос для более подробной информации – Shikinr

+0

просто поместите их в Dropbox или где-нибудь и предоставите ссылку –

+0

Здесь u go! https: //www.dropbox.com/s/52dl38g40uqbov1/categories.jpg? dl = 0 – Shikinr

0

Попробуйте это:

  1. Создание 7 различных ячеек прототипа.
  2. Измените идентификатор повторного использования каждой ячейки прототипа в соответствии с одной из ваших категорий.
  3. Свяжите каждую ячейку прототипа с другим ViewController с помощью segue.
  4. В cellForRowAtIndexPath используйте категорию для этой строки, чтобы принести правильную ячейку прототип:

    let categories = category[indexPath.row] as Categories 
    let cell = tableView.dequeueReusableCellWithIdentifier(categories.category, forIndexPath: indexPath) as CategoriesCell 
    
+0

, создавая 7 прототипов, но я не уверен, как написать мою возвратную ячейку. как я могу написать ячейку возврата для 7 ячеек и как написать запись для числа строк? – Shikinr