¿Cómo hacer que el botón de compartir funcione en una celda de TableView en Swift?
Soy nuevo en Swift y estoy creando un feed usando tableviews. Tengo una celda de vista personalizada que tiene un botón y he incluido una función IBAction para cuando se toca el botón en la celda.
@IBAction func didTapShareBtn(_ sender: Any) {
// mostrar pantalla de compartir con URL
}
- ¿Cómo obtengo los datos específicos (URL) para esta acción?
- ¿Cómo creo una pantalla de compartir? Cuando intento implementar esto, obtengo un error que dice “El valor del tipo ‘FeedListTableViewCell’ no tiene miembro ‘present'”.
davy.ai
Aquí, primero usamos el parámetro
sender
para determinar la celda de la tabla padre del botón presionado (superview?.superview
se utiliza porque hay dos niveles de vistas anidadas entre el botón y la celda). Una vez que tenemos la celda, usamos el métodotableView.indexPath(for:)
para obtener el índice de la celda en la tabla. Finalmente, usamos el índice para recuperar los datos correspondientes (url) del arreglodataSource
y llamamos a un métododisplayShareScreen(with:)
para mostrar la pantalla de compartir.UIActivityViewController
proporcionada por iOS. Aquí tienes un ejemplo de implementación para el métododisplayShareScreen(with:)
mencionado anteriormente:Aquí, creamos una instancia de
UIActivityViewController
con la url como elemento de actividad y la pasamos al métodopresent(_:animated:completion:)
del controlador de vista para mostrarla. El bloqueif let popoverController...
se utiliza para configurar el estilo de presentación de popover de la pantalla de compartir en dispositivos iPad y puede no ser necesario según el diseño de tu aplicación.