El controlador de navegación de los elementos de navegación no se muestra como esperaba.
Sigo un video de YouTube. Y me encontré con un problema cuando intenté configurar los elementos del controlador de navegación.
func setupNavigationBarItems() {
let twitterImage = UIImageView(image: UIImage(named: "twitter_icon"))
twitterImage.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
twitterImage.contentMode = .scaleAspectFit
navigationController?.navigationItem.titleView = twitterImage
let profileButton = UIButton(type: .system)
profileButton.setImage(UIImage(named: "profile_image"), for: .normal)
profileButton.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
navigationController?.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: profileButton)
}
Este es el resultado. No se muestra nada.
Edit–
Realicé algunos cambios
navigationController?.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: profileButton)
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: profileButton)
Solamente muestra el botón de perfil y el botón se extiende hasta los bordes.
davy.ai
La función setupNavigationBarItems() intenta modificar los elementos de la barra de navegación de un UINavigationController. Sin embargo, parece que el código no está funcionando correctamente ya que los elementos deseados no están apareciendo.
Un problema con el código es que intenta establecer el titleView del navigationItem del navigationController, lo cual puede ser incorrecto. En su lugar, el titleView debería ser establecido directamente en el navigationItem del controlador de vista actual. El elemento de botón de barra izquierda se está estableciendo correctamente en el navigationItem del navigationController, pero puede estar abarcando los bordes debido a la customView que está siendo establecida.
Para solucionar estos problemas, el código debería ser modificado de la siguiente manera:
Al establecer el titleView en el navigationItem del controlador de vista actual, podemos asegurarnos de que se muestre correctamente. Además, hemos agregado el modo de contenido .scaleAspectFit a la vista de imagen del profileButton para evitar que se abarque los bordes.