Как динамически загружать просмотр таблицы в swift 4 - PullRequest
0 голосов
/ 10 июня 2019

enter image description here Я использовал cocoapod Worm Tab Strip для получения вкладок, подобных android, названия вкладок взяты из ответа сервера, мне нужно n контроллеров представления на основе количества имен вкладок.

Для целей тестирования у меня есть жестко закодированные имена вкладок, и для каждого конкретного имени вкладки у меня есть другой массив вложенных имен.У меня вопрос, как мне изменить содержимое таблицы так, чтобы я получал точное количество подимен в соответствии с именами вкладок

var tabNames = ["Brands", "Sports","Movies", "Mobile","Games"]
var brandsNames = ["Addidas", "Nike","Puma"]
var sportsName = ["Cricket","Fifa","Hockey","Baseball"]
var moviesName = ["Mission Impossible","Matrix","Avatar","Titanic"]
var mobileNames = ["Nokia","Redmi","Samsung"]
var gameNames = ["FIFA 19","PES 19","WWE 2K19","Max Payne"]

Что мне следует попробовать в

func tableView(_ tableView: UITableView, numberOfRowsInSection 
section: Int) -> Int {

   // return fruits.count
    }

И

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: 
IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", 
for: indexPath) as! Cell1
    //cell.textLabel?.text = fruits[indexPath.row]

    return cell
    }

Мне нужно перейти на вкладку "Бренды", в качестве содержимого табличного представления мне нужны марочные имена.

Содержимое табличного представления должно меняться в соответствии с именами вкладок.

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Создайте пользовательскую структуру в качестве модели данных, например

struct Category {  
    let name : String
    let items : [String]
}

Объявление массива источника данных и индекса

var categories = [Category]()
var index = 0

В viewDidLoad заполните массив источника данных и установите index текущего индекса UISegmentedControl

categories = [Category(name:"Brands", items: ["Addidas", "Nike","Puma"]),
              Category(name:"Sports", items: ["Cricket","Fifa","Hockey","Baseball"]),
              Category(name:"Movies", items: ["Mission Impossible","Matrix","Avatar","Titanic"]),
              Category(name:"Mobile", items: ["Nokia","Redmi","Samsung"]),
              Category(name:"Games", items: ["FIFA 19","PES 19","WWE 2K19","Max Payne"])]

index = // current index of the segmented control

в IBAction сегментированного элемента управления установите индекс и перезагрузите представление таблицы

@IBAction func categorySelection(_ sender: UISegmentedControl) {
    index = sender.selectedSegmentIndex
    tableView.reloadData()
}

Методы источника данных:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return categories[index].items.count
}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! Cell1
    cell.textLabel?.text = categories[index].items[indexPath.row]
    return cell
}
0 голосов
/ 12 июня 2019

enter image description here Я использовал это введите описание ссылки здесь в качестве ссылки, чтобы я мог передать идентификатор конкретной вкладки в табличное представление в viewcontroller и загрузить этот Tablview, так что теперь я могу динамически добавлять новые вкладки и соответствующий Tablview также меняется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...