Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

256
Vistas
El cajón de navegación inferior no aparece (Swift)

Actualmente estoy trabajando en una aplicación iOS y quiero usar un cajón de navegación inferior de material-io. Así que lo hice como se explica en los ejemplos del sitio . Pero cuando presento el Cajón de navegación, el ViewController solo se oscurece un poco y no se muestra la vista de contenido del cajón.

Aquí está mi código:

 import Foundation import UIKit import MaterialComponents class CreateSubjectView: UIViewController, UITextFieldDelegate { ... override func viewDidLoad() { ... let bottomDrawerViewController = MDCBottomDrawerViewController() self.modalPresentationStyle = .popover let newViewController = self.storyboard?.instantiateViewController(withIdentifier: "TEST") bottomDrawerViewController.contentViewController = newViewController present(bottomDrawerViewController, animated: true, completion: nil) ... } ... }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El controlador de vista que se mostrará en el cajón debe tener un tamaño de contenido preferido especificado.

Aquí hay una demostración del controlador mínimo. ( Nota: modalPresentationStyle = .popover no tiene efecto en MDCBottomDrawerViewController )

Probado con Xcode 12

manifestación

 // button action in parent controller @objc private func presentNavigationDrawer() { let bottomDrawerViewController = MDCBottomDrawerViewController() bottomDrawerViewController.contentViewController = DemoViewController() present(bottomDrawerViewController, animated: true, completion: nil) } } class DemoViewController: UIViewController { override func loadView() { super.loadView() let view = UIView() view.backgroundColor = .red self.view = view } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() // specify your content preferred height explicitly self.preferredContentSize = CGSize(width: 0, height: 400) // required !! } @available(iOS 11.0, *) override func viewSafeAreaInsetsDidChange() { super.viewSafeAreaInsetsDidChange() // specify your content preferred height explicitly self.preferredContentSize = CGSize(width: 0, height: 400) // required !! } }
over 4 years ago · Santiago Trujillo Denunciar

0

Mueva esto a viewWillAppear / viewDidAppear una vez, ya que es demasiado pronto para que viewDidLoad presente un vc

 class CreateSubjectView: UIViewController, UITextFieldDelegate { let bottomDrawerViewController = MDCBottomDrawerViewController() var once = true override func viewDidLoad() { super.viewDidLoad() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) if once { let newViewController = self.storyboard?.instantiateViewController(withIdentifier: "TEST") bottomDrawerViewController.contentViewController = newViewController present(bottomDrawerViewController, animated: true, completion: nil) once = false } } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda