Post

Replies

Boosts

Views

Activity

Reply to How to pass data through TabBarController?
Sorry, I saw your message just today. Yes, of course, this is the code.     // MARK: - Saving Data to Archive File          // 1. Make a path to save and upload data.     static let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!     static let archiveUrl = documentsDirectory.appendingPathComponent("classes").appendingPathExtension("plist")          // 2. Encoding and saving data.     static func saveToFile(classes: [ClassUnit]) {         let propertyListEncoder = PropertyListEncoder()         let encodeClasses = try? propertyListEncoder.encode(classes)         try? encodeClasses?.write(to: archiveUrl, options: .noFileProtection)              }     // 3. Deconding and load data.     static func loadFromFile() -> [ClassUnit] {         let propertyListDecoder = PropertyListDecoder()         var classes = [ClassUnit]()         if let retrivedClassesData = try? Data(contentsOf: archiveUrl), let decodeClasses = try? propertyListDecoder.decode(Array<ClassUnit>.self, from: retrivedClassesData) {             classes = decodeClasses         }         return classes     } You can see more about this method in Apple's textbook called App Development with Swift. It can be found in iBookStore.
Jul ’20
Reply to Why doesn't the app work 6 seconds after launch?
| Do you mean first time after download ? Yes, first time after download. In these two files I have not changed anything in the code import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {         // Override point for customization after application launch.         return true     }     // MARK: UISceneSession Lifecycle     func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {         // Called when a new scene session is being created.         // Use this method to select a configuration to create the new scene with.         return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)     }     func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {         // Called when the user discards a scene session.         // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.         // Use this method to release any resources that were specific to the discarded scenes, as they will not return.     } } import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate {     var window: UIWindow?     func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {         // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.         // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.         // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).         guard let _ = (scene as? UIWindowScene) else { return }     }     func sceneDidDisconnect(_ scene: UIScene) {         // Called as the scene is being released by the system.         // This occurs shortly after the scene enters the background, or when its session is discarded.         // Release any resources associated with this scene that can be re-created the next time the scene connects.         // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).     }     func sceneDidBecomeActive(_ scene: UIScene) {         // Called when the scene has moved from an inactive state to an active state.         // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.     }     func sceneWillResignActive(_ scene: UIScene) {         // Called when the scene will move from an active state to an inactive state.         // This may occur due to temporary interruptions (ex. an incoming phone call).     }     func sceneWillEnterForeground(_ scene: UIScene) {         // Called as the scene transitions from the background to the foreground.         // Use this method to undo the changes made on entering the background.     }     func sceneDidEnterBackground(_ scene: UIScene) {         // Called as the scene transitions from the foreground to the background.         // Use this method to save data, release shared resources, and store enough scene-specific state information         // to restore the scene back to its current state.     } }
Aug ’20