Gewusst wie: aktualisieren Sie oder laden Sie app-Daten in swift 2

Ich schrieb und app in swift denen Sie eine view-controller, die ich ändern einige Einstellungen, zum Beispiel : alle view-Controller-Etiketten und Titel ändern.
aber mein problem ist wenn ich die app-Einstellungen, die ich Speichere Sie in core data und ich verwenden Sie die navigation-bar-Taste, um wieder zur übergeordneten Ansicht-controller, wenn ich fetch-core-Daten, die ich bekommen nichts immer noch die gleichen Daten! aber Einstellungen-Ansicht-controller, wenn ich gehen, um es wieder lädt er die richtigen Daten!
Und wenn ich die app schließen und erneut öffnen, die app lädt die richtigen Daten!
Also meine Frage ist wie kann ich neu laden oder starten Sie den ersten view-controller oder ganze app programmgesteuert ?

zum besseren Verständnis meiner Frage unten meine Eltern view-controller, enthält eine Navigationsleiste.

Code :

import UIKit
import AVKit
import AVFoundation
import CoreData

class playVideo: UIViewController {

    //data source
    var languageDB = [NSManagedObject]()
    let managedContext = AppDelegate().managedObjectContext

    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationItem.hidesBackButton = true
        change_language()
    }

  override func viewDidLayoutSubviews() {
        self.view.setNeedsDisplay()
    }



    override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    change_language()
}



    func change_language(){
        Insert("فارسی")//insert default language
        fetch("Language")
        let Language = languageDB[0]
        let row_value : String = Language.valueForKey("lang") as! String

        if(row_value == "فارسی"){
            self.navigationItem.title = "پخش زنده تصاویر از حرم مطهر رضوی"
            self.navigationItem.backBarButtonItem?.title = "صفحه اصلی"
        }else if(row_value == "English"){
            self.navigationItem.title = "Live broadcast from razavi holy shrine"
            self.navigationItem.backBarButtonItem?.title = "Main Page"
        }else if(row_value == "العربية"){
            self.navigationItem.title = "لايف صور من مقام رضوي"
            self.navigationItem.backBarButtonItem?.title = "صفحةابتدائي"
        }
    }


    //Insert Function
    func Insert(lang : String) {
        let check_empty = entityIsEmpty("Language")
        if(check_empty != true){

            let saveLanguage = NSEntityDescription.insertNewObjectForEntityForName("Language", inManagedObjectContext: managedContext)

            //add our data
            saveLanguage.setValue(lang, forKey: "lang")

            //2
            do {
                try managedContext.save()
                //3
                languageDB.append(saveLanguage)

            } catch let error as NSError  {
                print("Could not save \(error), \(error.userInfo)")
            }


        }//end of check empty if
    }

    //fetch Functions
    func fetch(entity: String){
        let langfetch = NSFetchRequest(entityName: entity)

        do{
            let results = try managedContext.executeFetchRequest(langfetch)
            languageDB = results as! [NSManagedObject]

        }catch{
            fatalError("bad things happend \(error)")
        }

    }

    //check entity is empty Function
    func entityIsEmpty(entity: String) -> Bool
    {

        let request = NSFetchRequest(entityName: entity)

        do{
            let results = try managedContext.executeFetchRequest(request)
            languageDB = results as! [NSManagedObject]

        }catch{
            fatalError("Cant handel entity \(error)")
        }

        if languageDB.count != 0
        {
            return true
        }
        else
        {
            return false
        }


    }


    func Refresh() {
        //Do some reloading of data and update the table view's data source
        //Fetch more objects from a web service, for example...

        self.dismissViewControllerAnimated(true, completion: nil)
        self.navigationController!.dismissViewControllerAnimated(true, completion: nil)
        navigationController!.popViewControllerAnimated(true)
        self.navigationItem.hidesBackButton = true
        change_language()
    }

}
Nicht profitieren Ihre Insert und Refresh Funktion Namen! Es macht den code sehr unleserlich.
Danke für den Tipp

InformationsquelleAutor anonymox | 2016-02-26

Schreibe einen Kommentar