Saltar al contenido

Personalice su aplicación según los requisitos de la aplicación MacOS

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.

  1. 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.

  2. Utilizar el Biblioteca de objetos buscar Controlador de vista dividida y arrástrelo y suéltelo junto al controlador de navegación.

    Controlador de vista dividida

  3. 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.

    Controlador de vista dividida

    Después de eliminar su guión gráfico, ahora debería verse así:

    Controlador de vista dividida

  4. 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.

    Controlador de vista dividida

  5. 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.

    Controlador de vista dividida

    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
    
    
  6. Abre el ApplicationUIManager.swift archivar y encontrar el showApplicationScreen(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)
    }
    
    
  7. 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.

    Controlador de vista dividida

Hecho

Inicie sesión para responder la pregunta