J'ai donc besoin d'aide pour un projet. J'ai une simple barre d'onglets SVC où la première vue est une minuterie et la seconde est une page de paramètres. Sur la page des paramètres, j'ai configuré une structure avec un tableau de couleurs, puis lorsqu'un utilisateur clique sur un bouton, une couleur aléatoire dans le tableau est appelée et appliquée à l'arrière-plan. Cette partie fonctionne exactement comme je l'ai prévu. Ce que je voudrais faire est ensuite appliquer cette couleur à l'arrière-plan de la deuxième vue.Changer la vueController Couleur BG basée sur un autre contrôleur de vue
Voici le code des paramètres
import UIKit
import GameKit
public var randomColor = UIColor()
class SettingsViewController: UIViewController {
@IBOutlet weak var pushMe: UIButton!
let colorProvider = BackgroundColorProvider()
@IBAction func pushMeChange(_ sender: Any) {
randomColor = colorProvider.randomColorBG()
print (randomColor.superclass as Any)
view.backgroundColor = randomColor
}
struct BackgroundColorProvider {
let colors = [
UIColor(red: 90/255.0, green: 187/255.0, blue: 181/255.0, alpha: 1.0), // teal color
UIColor(red: 222/255.0, green: 171/255.0, blue: 66/255.0, alpha: 1.0), // yellow color
UIColor(red: 223/255.0, green: 86/255.0, blue: 94/255.0, alpha: 1.0), // red color
UIColor(red: 239/255.0, green: 130/255.0, blue: 100/255.0, alpha: 1.0), // orange color
UIColor(red: 77/255.0, green: 75/255.0, blue: 82/255.0, alpha: 1.0), // dark color
UIColor(red: 105/255.0, green: 94/255.0, blue: 133/255.0, alpha: 1.0), // purple color
UIColor(red: 85/255.0, green: 176/255.0, blue: 112/255.0, alpha: 1.0), // green color
]
func randomColorBG() -> UIColor {
let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: colors.count)
return colors[randomNumber]
}
}
}
Ensuite, je dois cela dans la principale viewController je tire d'ici: Changing background color of all views in project from one view controller?
La fonction ne l'erreur ci-après n'erreur pas Cependant, je suis un noob au mieux, je ne sais pas comment la cloche devrait fonctionner et je doute qu'elle soit appelée. Toute aide est appréciée.
// bringing in background color from SettingsViewController
func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "Load View") {
// pass data to next view
let viewController:SettingsViewController = segue!.destination as! SettingsViewController
viewController.view.backgroundColor = self.view.backgroundColor
}
}
Créer un singleton pour gérer la couleur et la couleur sélectionnée, ou simplement pousser la couleur vers le 2ème viewcontroller – Tj3n
quelle erreur? Vous utilisez un contrôleur de tabulation? ou juste TabBar? –
jeter un oeil à ma réponse ci-dessous, il devrait prendre soin de votre problème. Lmk si vous avez besoin d'autre chose! –