Also brauche ich etwas Hilfe für ein Projekt. Ich habe eine einfache Registerkarte SVC, wo die erste Ansicht ist ein Timer und die zweite ist eine Einstellungsseite. Auf der Einstellungsseite habe ich eine Struktur mit einem Array von Farben eingerichtet, und wenn ein Benutzer auf eine Schaltfläche klickt, wird eine zufällige Farbe im Array aufgerufen und auf den Hintergrund angewendet. Dieser Teil funktioniert genauso wie ich es vorhabe. Was ich tun möchte, ist, diese Farbe dann auf den Hintergrund der zweiten Ansicht anzuwenden.Ändern viewController BG Farbe basiert auf einem anderen View Controller
Hier die Einstellungen Code
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]
}
}
}
Dann habe ich diese in der Hauptviewcontroller ich von hier gezogen: Changing background color of all views in project from one view controller?
Die Funktion Fehler tritt nicht aus, unten Fehler aber ich bin bestenfalls ein noob, ich bin mir nicht sicher, wie die Glocke funktionieren soll und ich bezweifle, dass sie überhaupt angerufen wird. Jede Hilfe wird geschätzt.
// 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
}
}
Erstellen Sie ein Singleton, um die Farbe und die ausgewählte Farbe zu verwalten, oder drücken Sie einfach die Farbe auf den 2. Viewcontroller – Tj3n
Welchen Fehler? Verwenden Sie den Tab-Controller? oder nur tabBar? –
werfen Sie einen Blick auf meine Antwort unten sollte sich um Ihr Problem kümmern. LMK, wenn Sie noch etwas brauchen! –