2012-04-11 22 views
0

Ich habe eine Tabellenansicht mit vielen Elementen Wenn ich auf eine Zelle in der Tabelle klicke, lädt sie eine Ansicht mit einem Web-View-Ausgang, in der Web-Ansicht in Viewdidload habe ich diese Codezeile ist die hTML-Datei Weicht zu ladenEine HTML-Datei in eine Webansicht laden

NSString *name = pagename.text; 
[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:name ofType:@"html"]isDirectory:NO]]]; 

der Code in der Projektdatei aus der ausgewählten Zelle zu dieser Web-Ansicht drücken mit dem Test genannt wird

if (indexPath.row == 0) 
{ 

    Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
    test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:test animated:YES]; 

    NSString *name1 = @"ba"; 
    [[test pagename] setText:[NSString stringWithString:(NSString *)name1]]; 

} 

else if (indexPath.row == 1) 
{ 

    Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
    test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:test animated:YES]; 

    NSString *name1 = @"bb"; 
    [[test pagename] setText:[NSString stringWithString:(NSString *)name1]]; 

} 

else if (indexPath.row == 2) 
{ 

    Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
    test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:test animated:YES]; 

    NSString *name1 = @"bc"; 
    [[test pagename] setText:[NSString stringWithString:(NSString *)name1]]; 

} 

die html-Dateien genannt wird ba, bb, bc und bd. html

das Problem ist, wenn ich eine beliebige Zelle der vier Zellen wählen i in der Tabelle haben sie die gleiche HTML-Datei „ba.html“ zeigt

Ich habe alles versucht, das Projekt Reinigung, Löschen der Dateien und kopieren sie zurück, änderte den Simulator, startete die Runde neu und änderte sogar die Dateinamen.

Hilfe?

Dank im Voraus

Update:

Dies ist das Loch Code

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [array count]; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"CustomCell"; 


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    [[cell textLabel] setTextAlignment:UITextAlignmentRight]; 

    cell.textLabel.text = [array objectAtIndex:indexPath.row]; 
    cell.textLabel.font = [UIFont systemFontOfSize:18]; 
    cell.textLabel.numberOfLines = 3; 

    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

    if (indexPath.row == 0) 
    { 

     Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
     test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:test animated:YES]; 

     NSString *name1 = @"ba"; 
     [[test pagename] setText:name1]; 

    } 

    else if (indexPath.row == 1) 
    { 

     Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
     test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:test animated:YES]; 

     NSString *name1 = @"bb"; 
     [[test pagename] setText:name1];   
    } 

    else if (indexPath.row == 2) 
    { 

     Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
     test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:test animated:YES]; 

     NSString *name1 = @"bc"; 
     [[test pagename] setText:name1]; 
    } 

    else if (indexPath.row == 3) 
    { 

     Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
     test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:test animated:YES]; 

     NSString *name1 = @"bd"; 
     [[test pagename] setText:name1]; 

    } 
} 

Antwort

1

Sie präsentieren die Steuerung vor der Seite einstellen.

Machen Sie eine NSString-Instanzvariable in Ihrer Webview-Klasse als Namen. Machen Sie es zu einer Eigenschaft (nichtatomare, behalten Sie) und synthetisieren Sie es.

Anstatt die Bezeichnung des Viewcontrollers festzulegen, geben Sie den Namen ein. Dann in ViewDidLoad, setzen Sie die Bezeichnung von Name.

Legen Sie die Bezeichnung aus dem Namen, nicht umgekehrt.

Test *test = [[Test alloc] initWithNibName:nil bundle:nil]; 
test.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
NSString *name1 = @"bc"; 
[test setName:[NSString stringWithString:(NSString *)name1]]; 
[self presentModalViewController:test animated:YES]; 
viewDidLoad

In der Webansicht

-(void)viewDidLoad { 
    pagename.text = self.name; 
    [WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:name ofType:@"html"]isDirectory:NO]]]; 
} 
+0

Ich habe den Code @PRNDL Development Studios – aLFaRSi

+0

bearbeitet. Versuch das. –

+0

Immer noch das gleiche, nichts geändert – aLFaRSi

0

Können Sie einen Haltepunkt setzen oder ein Protokoll zu sehen, ob indexPath.row immer 0:

wurde in der Zelle ausgewählt?

Wenn dies der Fall ist, dann ist Ihre Tabelle möglicherweise so erstellt, dass jedes Element in einem eigenen Bereich ist. Sie müssten dann indexPath.section verwenden, da jedes Objekt Zeile 0 eines eigenen Abschnitts wäre.

Auch ich weiß nicht, welche Art von Objekt ‚Seitenname‘, sondern Setter im Allgemeinen der Parameter beibehalten, so dass Sie nicht eine Kopie von name1 in

[[test pagename] setText:[NSString stringWithString:(NSString *)name1]]; 

Hinweis erstellen müssen: Das hängt davon ab, wie die Eigenschaft in der Klasse deklariert wird, aber normalerweise werden diese Eigenschaften beibehalten.

+0

meine Tabelle ist in IB erstellt, zog eine Tabellenansicht, verknüpfte es mit dem Delegaten und nannte es TableView und verknüpfte es mit dem Eigentümer der Dateien, ich versuchte die .section == 0 und es ist die gleiche – aLFaRSi

+0

ich protokolliert die .row und die .section geben beide die richtigen Zahlen, 0,1,2, ..... – aLFaRSi

Verwandte Themen