¿Cómo puedo agregar una hoja de estilo externa a UIWebView en Xcode?

He visto varias preguntas y respuestas similares y todavía no puedo hacer que esto funcione, así que estoy agregando mi propia pregunta:

Estoy jugando con UIWebView. Puedo crear una página html de trabajo con CSS en línea. No puedo encontrar la forma de cargar el CSS si está en un archivo en el grupo de recursos de la aplicación.

Mi código es:

NSString *path = [[NSBundle mainBundle] pathForResource:@"webViewPage2" ofType:@"html"]; NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path]; NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; webView.opaque = NO; webView.backgroundColor = [UIColor clearColor]; [self.webView loadHTMLString:htmlString baseURL:nil]; [htmlString release]; 

Y mi llamada html es esta:

        

Some Title

We can put instructions here. Such as: "uh-oh You should not have pushed that button!"

Agradecería cualquier idea o solución. ¡Muchas gracias!

cambie el URL base de UIWebView a la url de su paquete principal.

 NSURL *mainBundleURL = [[NSBundle mainBundle] bundleURL]; [self.webView loadHTMLString:htmlString baseURL:mainBundleURL]; 

Swift 3:

 webView.loadHTMLString(contentString, baseURL: Bundle.main.bundleURL) 

Creo que lo he descubierto. el htmlString es simplemente un NSString, podemos reemplazar el texto en él. este código funcionó para mí

 NSString *info = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"your html file name" ofType:@"html"] encoding: NSUTF8StringEncoding error: &error]; info=[info stringByReplacingOccurrencesOfString:@"styles.css" withString:@"stylesIPad.css"]; 

Pensé que debería publicar todo el bloque de código para acceder a un archivo CSS externo. Con suerte, será útil para otros:

 - (void)viewDidLoad { NSURL *mainBundleURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]; NSString *path = [[NSBundle mainBundle] pathForResource:@"mypagename" ofType:@"html"]; NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path]; NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; webView.opaque = NO; webView.backgroundColor = [UIColor clearColor]; [self.webView loadHTMLString:htmlString baseURL:mainBundleURL]; [htmlString release]; } 
 NSURL *BundleURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"name your style" ofType:@"css"]]; webView.opaque = NO; webView.backgroundColor=[UIColor clearColor]; [webView loadHTMLString:htmlString baseURL:BundleURL];