En el último tutorial, realizó cambios en la configuración de su proyecto Xcode para habilitar Mac Catalyst para su proyecto de aplicación.
Este tutorial implica realizar algunos cambios en el proyecto para que se adapte mejor a MacOS sin cambiar la apariencia de iPhone o iOS.
Cubrirá los conceptos básicos para Mac Catalyst y SAP SDK para iOS, pero al utilizar la documentación ya mencionada junto con esta serie de tutoriales, debería estar bien preparado para crear excelentes aplicaciones comerciales.
Primero, desea cambiar el flujo de la aplicación para tener una vista dividida en su lugar mientras se ejecuta en Mac Catalyst. Split View o Split View para Mac Catalyst le permite mostrar una barra lateral similar a las aplicaciones de Apple Music o Stocks en MacOS.
Si observa la estructura actual de la aplicación, el usuario terminará en la pantalla Descripción general inmediatamente después de completar el proceso de incorporación. En MacOS, esto será de la misma manera que la diferencia de que una barra lateral estará disponible para el usuario donde él o ella puede cambiar entre Vista general, Cliente y Lista de productos directamente.
Para implementar el nuevo flujo, puede conectar nuestro flujo de aplicación actual en un guión gráfico a un controlador de vista dividida estándar.
Abre el
Main.storyboard
y seleccione el Controlador de navegación, abre el Inspector de características hacia Es el controlador de vista frontal. Esto es necesario porque el controlador visual dividido es el nuevo punto de entrada principal.Utilizar el Biblioteca de objetos buscar Controlador de vista dividida y arrástrelo y suéltelo junto al controlador de navegación.
Con eso en su lugar, puede conectar el controlador de vista dividida a nuestro flujo de aplicaciones actual. Primero, elimine la Vista de vista del controlador de la Vista dividida del controlador en el guión gráfico.
Después de eliminar su guión gráfico, ahora debería verse así:
Arrastre el controlador de navegación del flujo de la aplicación justo al lado del controlador de vista dividida y cree una secuencia de guión gráfico entre los Controlador de vista dividida y el Controlador de navegación. Como tipo de segue, seleccione controlador de vista detallada y seguro.
Haga que el controlador principal visual dividido sea el controlador de vista frontal de la aplicación seleccionando el controlador de vista y Inspector de características para marcar la casilla para Es el controlador de vista frontal.
Repasemos rápidamente lo que hizo aquí. Primero, agregó un nuevo controlador de vista dividida que es un control estándar de la interfaz de usuario de Apple. Luego, agregó el flujo de nuestra aplicación al controlador de vista dividida a través de un controlador de vista detallada segue. Esto permite que el controlador de vista dividida administre automáticamente su ciclo de vida de vista dividida. Dejas el controlador de navegación encendido mientras intentas mantener nuestro flujo regular de aplicaciones.
Debido a que Prime Visual Controller es el nuevo controlador de vista frontal, debe
ApplicationUIManager
codifique en consecuencia.Para asegurarse de que ve el flujo de la aplicación estándar mientras se ejecuta en iOS mientras se muestra la Vista dividida mientras se ejecuta en Mac Catalyst, puede usar las condiciones ambientales para definir un código de inicio diferente.
#if targetEnvironment(macCatalyst) #else
Abre el
ApplicationUIManager.swift
archivar y encontrar elshowApplicationScreen(completionHandler:)
método. Ahora puede ver que está iniciando el controlador de navegación como nuestra pantalla de inicio, pero debe cambiar eso para que se adapte a Mac Catalyst. Cambie el código de implementación por el siguiente y lea los comentarios en línea con atención:func showApplicationScreen(completionHandler: @escaping (Error?) -> Void) { // Check if an application screen has already been presented guard self.isSplashPresented else { completionHandler(nil) return } // Restore the saved application screen or create a new one let appViewController: UIViewController if let savedViewController = self._savedApplicationRootViewController { appViewController = savedViewController } else { // If running on Mac Catalyst initialize the Split View Controller and set it as new app view controller #if targetEnvironment(macCatalyst) let splitViewController = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateInitialViewController() as! UISplitViewController splitViewController.modalPresentationStyle = .currentContext splitViewController.preferredDisplayMode = .allVisible appViewController = splitViewController // If running on iOS show the OverviewTableViewController #else let overviewTVC = UIStoryboard(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "OverviewTableViewController") as! OverviewTableViewController appViewController = overviewTVC #endif } self.window.rootViewController = appViewController self._onboardingSplashViewController = nil self._savedApplicationRootViewController = nil self._coveringViewController = nil completionHandler(nil) }
Ejecute la aplicación en el Mi hijo esquema y debería ver la aplicación que tiene ahora en Split View y puede ver esa hermosa barra lateral vacía. Además, si ha notado que el sistema sabe automáticamente que su aplicación está tratando de recibir notificaciones push y Mac Catalyst se asegura de que MacOS lo muestre en consecuencia.
Si se encuentra con el problema “El ID de desarrollo de Apple es ambiguo. Se encuentran varios certificados en su llavero para ID de desarrollo de Apple ”, puede seguir esta publicación de blog para resolver el problema Manejo de la identidad ambigua de desarrollador de Apple.