2011-10-14 5 views
1

Je voudrais créer un ensemble de pages d'aide pour une application iOS, et il semble logique d'avoir une table des matières hypertexte.Utiliser l'hypertexte dans xCode iOS

Est-ce possible, et si oui, comment encapsuler les liens de page dans OBj-C?

Merci ..

J'ajoute un code où je suis coincé. J'utilise l'exemple de TransWeb d'Apple comme base ..

- (void)viewDidLoad 
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"page1" ofType:@"html"]; 
    NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];  
    NSString *htmlString = [[NSString alloc] initWithData: 
           [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; 


    [self.webView loadHTMLString:htmlString baseURL:nil]; 

Voilà comment j'ai mis en place les liens dans les fichiers html ..

<html> 
<p> 
Located in the Sierra Nevada foothills of <a href = "file://page2.html">California</a> 
     in the Sierra Nevada ........... 
</p> 

Merci à Caleb pour me donner le droit répondre ..

J'ai changé webView loadRequest comme suit:

[super viewDidLoad]; 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"page1" ofType:@"html"]isDirectory:NO]]]; 

et changé le fichier html ainsi:

<a href = "page2.html">California</a> 

Répondre

1

Bien sûr, utilisez simplement UIWebView pour afficher vos pages HTML. Utilisez des URL relatives pour créer un lien entre les pages.

Mise à jour: Un problème que je vois dans le code que vous avez posté est que votre URL est incorrecte. Vous avez une URL de fichier comme ceci: file://page2.html. C'est incorrect - si vous voulez une URL relative à la racine de l'hôte, vous pouvez utiliser: file:///page2.html. Cette URL omet l'hôte, ce qui implique que le même hôte que la page en cours doit être utilisé. Si vous voulez faire l'URL relative à la fois à l'hôte et au répertoire de la page en cours, laissez le schéma entier: page2.html. Donc, votre balise d'ancrage pourrait ressembler à:

<a href = "page2.html">California</a> 

Une autre chose à considérer est que vous n'avez pas besoin probablement à se soucier de la NSFileHandle. Il suffit de charger les données de la page racine directement dans une chaîne:

NSString *htmlString = [NSString stringWithContentsOfFile:path encoding: NSUTF8StringEncoding error:nil]; 
+0

THanks Caleb, toujours me gratter la tête - J'ai ajouté plus de code à ma question d'origine (ou le sera dans un instant). –

+0

DING .. MERCI !! J'ai laissé tomber tout le plan comme vous l'avez suggéré, et cela a fonctionné. J'ai également trouvé une méthode xCode plus simple. J'ajoute cela à mon post original .. –