簡體   English   中英

Swift ViewController不會刷新背景色

[英]Swift ViewController doesn't refresh background color

我有一個MainView Controller和另一個SettingsView Controller。 在SettingsView控制器中,我讓用戶選擇背景色,將其保存並移回MainView Controller。 我使用Navigation controller segue從Main移到Settings並使用dismissViewControllerAnimated移回Main。

我的問題是,當我為主視圖設置背景時,它沒有顯示。 但是,如果我關閉並重新啟動應用程序,則它會正確顯示。 是因為主視圖已經打開並且沒有刷新回來嗎?

這是代碼:

設置:

let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject("theme", forKey: "BackgroundColor")

主要:

 override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.clearColor()
        var backgroundLayer = Util.GetTheme()
        backgroundLayer.frame = view.frame
        view.layer.insertSublayer(backgroundLayer, atIndex: 0)
    }

根據您的要求,您需要將用於更改顏色的代碼移動到viewWillAppear方法。 因為viewDidLoad在加載到內存時將僅被調用一次。 viewWillAppear每次到達前台或對用戶可見時都會被調用。

但是在哪里保存所選顏色並應用保存的顏色呢?

試試這個代碼:

class Colors {
let colorTop = UIColor(red: 192.0/255.0, green: 38.0/255.0, blue: 42.0/255.0, alpha: 1.0).CGColor
let colorBottom = UIColor(red: 35.0/255.0, green: 2.0/255.0, blue: 2.0/255.0, alpha: 1.0).CGColor

let gl: CAGradientLayer

init() {
    gl = CAGradientLayer()
    gl.colors = [ colorTop, colorBottom]
    gl.locations = [ 0.0, 1.0]
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM