2010-04-27 8 views
0

J'ai une application basée sur UISplitView avec un UIWebVIew dans la vue détaillée. Je veux le faire changer son contenu lorsque l'utilisateur choisit une nouvelle ligne dans la table en vue racine. J'ai essayé comme ça dans DetailViewController:Comment faire pour que UIWebView dans la vue détaillée d'un UISplitView change son contenu lorsqu'une ligne dans RootView est sélectionnée?

- (void)setDetailItem:(id)newDetailItem { 
extern NSString *rowname; 
if (detailItem != newDetailItem) { 
    [detailItem release]; 
    detailItem = [newDetailItem retain];   
    // Update the view. 
if ([rowname isEqualToString:@"About"]) 
[self loadFile:@"About.rtf"]; 
if ([rowname isEqualToString:@"Square"]) 
[self loadFile:@"Square.rtf"]; 
//And so on with every UITableView element from the RootView 
if (popoverController != nil) { 
    [popoverController dismissPopoverAnimated:YES]; 
} 
} 
} 

Aidez-moi, s'il vous plaît! Merci d'avance!

Répondre

0

Vous avez besoin d'une référence au viewcontroller qui contient la vue Web (votre contrôleur de vue détaillée) dans votre contrôleur rootview. Lorsqu'une ligne est sélectionnée, appelez une méthode dans le contrôleur webview (détail) et passez-lui un nom de fichier, une URL, etc. ... et elle appelle à son tour la méthode uiwebview pour charger la requête. Soit loadRequest: ou loadHTMLString: docs here

+0

J'ai réussi à le faire comme dans les tutoriels et des exemples sur le web. Mais dans les didacticiels, UITableView n'a qu'un seul niveau et j'ai une table à deux niveaux. C'est le problème maintenant – Knodel

+0

Vous avez besoin d'un UINavigationController envelopper votre contrôleur tableview, puis une sélection de ligne de table (crée si nécessaire, et ...) pousse le nouveau contrôleur de vue. Regardez simplement n'importe quel exemple de code source où il existe plusieurs tables de niveaux. Cela fonctionne de la même manière ici. – wkw