Изменить textColor, viewBackground и subview Background - PullRequest
0 голосов
/ 16 января 2020

Я хочу изменить цвет фона контроллеров представления, цвет фона подпредставлений и цвет текста при условии.

Например:

В mainViewcontroller есть 2 опции (A & B ViewController).

  • Если пользователь выбирает ViewController, то он будет следовать своему цвету от A до X, Y, Z ViewsControllers до тех пор, пока я не выполню sh, не выполню или покажу X, Y, Z View Контроллеры.

  • Если пользователь выберет B ViewController, то он будет следовать своему цвету от B до X, Y, Z ViewsControllers до I pu sh, выполнять поиск или представлять X, Y, Z Контроллеры представления.

Примечание. Эти подпредставления могут включать просмотр таблицы, коллекцию, просмотр таблицы в CollectionView или просмотр коллекции в tableView. Заранее спасибо.

Я использую этот подход

 if gold {
    if let vc = storyboard?.instantiateViewController(withIdentifier: "ListView") as? ListView {
        vc.gold = true
        vc.mainBackgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
        vc.labelColor = #colorLiteral(red: 0.968627451, green: 0.6196078431, blue: 0.1529411765, alpha: 1)
        vc.topBarColor = #colorLiteral(red: 0.2549019754, green: 0.2745098174, blue: 0.3019607961, alpha: 1)
        present(vc, animated: true, completion: nil)
    }
}

1 Ответ

0 голосов
/ 16 января 2020
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.row == 0 {
        self.performSegue(withIdentifier: "ThisColorSegue", sender: nil)
    } else if indexPath.row == 1 {
        self.performSegue(withIdentifier: "ThatColorSegue", sender: nil)
    } else if indexPath.row == 2 {
        self.performSegue(withIdentifier: "SomeOtherColorSegue", sender: nil)
    }
}


override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "ThisColorSegue", let dest = segue.destination as? ZController {
        dest.color = SomeColor
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...