2010-11-29 5 views
1

überprüfen bitte die Abbildung sehen Sie mehr klar, was ichIphone: Wie kann ich ein Bild oder etwas von der zweiten zur ersten Ansicht zurückgeben?

Dies ist der erste Start in First View

Es ist eine leere Tabelle Ansicht

Es ist eine Add-Taste auf der rechten Leiste

präsentieren wollen

alt text

Wenn Sie auf die Schaltfläche hinzufügen drücken, um die zweite Ansicht schieben wird

012.351.

Der zweite ist ein nur drei Reihen Tabellenansicht

alt text

die erste Zeile Tippen es wird eine Warnungsansicht Pop-up Sie einen Namen

alt text

Press Set erstellen zu lassen, die Text erscheint in der ersten Zeile

< Das ist die Frage 1, ich weiß nicht, wie man den Text an die Zelle weitergibt l ...>

Und nach vorne halten, dann ist das ein benutzerdefiniertes Radio-Button in der Zeile 2 und Zeile 3

Es sei denn, Sie auf die Schaltfläche erste Radio klicken, sonst können Sie diese methord nicht nennen

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

Dies ist letzten zwei Ansicht Symbolansicht 1 alt text Symbolansicht 2 alt text

T Hier sind viele Schaltflächen in der Ansicht, Dies ist die zweite Frage: Wenn ich eine dieser Schaltfläche drücken, wird es zur zweiten Ansicht zurückkehren und das Schaltflächensymbol in der Tabellenansicht Zeile 2 oder Zeile 3

Schließlich drücken Sie die Fertig-Taste (gleich auf der rechten Seite bar)

Es wird auf den ersten Blick zurück und zeigt, was Sie den Namen ein, und das Symbol, das Sie ausgewählt (Basis auf Optionsfeld ausgewählt ist)

, dass die letzte Frage ist .

ich meinen Quellcode laden hier: Link

Sie es herunterladen ...

und hier ist der Code, wie ich die Ansicht schieben ...

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

    if (indexPath.row==0) { 
     [self nameInputAlertView]; 
    } 
    RadioButtonClass *btn = [radioButtonArray objectAtIndex:[indexPath row]]; 
    if (btn.selected) { 
     //Radio Button is selected ,use that icon 
     if (indexPath.row == 1) { 
      IconViewOne *iconViewOne = [[IconViewOne alloc]init]; 
      iconViewOne.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
      [self.navigationController pushViewController:iconViewOne animated:YES]; 
      [iconViewOne release]; 
     } 
     if (indexPath.row==2) { 
      IconViewTwo *iconViewTwo = [[IconViewTwo alloc]init]; 
      iconViewTwo.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
      [self.navigationController pushViewController:iconViewTwo animated:YES]; 
      [iconViewTwo release]; 
     } 
    } 
} 

so. ..Zusammenfassung alle Fragen ...

1.Wie schreibe ich einen Text über das Textfeld in der Alarmansicht in die Tabellenansicht Zelle?

2.Wie wählen Sie ein Symbol von der letzten Ansicht zur zweiten Ansicht?

3.Senden all diese beiden Elemente Den ersten Blick: Name des & Icon

ich nur wissen, wie 1 bis 2 Ansicht Elemente aus dem Blickfeld passieren ... Sie wissen nicht, wie man wieder zurückkehren ......

Dank Kumpel, bitte hilf mir wird diese problem.I, um herauszufinden, sehr, sehr schätzen

BTW: Sie die Radio-Button-Klasse nehmen können in Ihrem jedes Projekt hinzufügen

Antwort

1

Ich weiß nicht, das ist der richtige Weg oder nicht, aber ich denke, das kann Ihnen helfen. Da Sie den Namen und das Bild in beiden Ansichten abrufen möchten, deklarieren Sie sie in appdelegate, damit global darauf zugegriffen werden kann.

Que 1:

Wenn eine Zeile didSelectRow Delegieren der Auswahl aufgerufen. Darin erhalten Sie den IndexPath. Speichern Sie diesen indexPath global. Dann

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
if ([alertView tag]==1) { 
    if (buttonIndex == 1){ 
     NSLog(@"Created"); 
     UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:tableIndexPath]; //tableIndexpath is declared globally as NSindexpath 
     ReturnToFirstViewAppDelegate *appObj=(ReturnToFirstViewAppDelegate *)[[UIApplication sharedApplication]delegate]; 
     appObj.selectedName = macroNameSetting.text; //Setting the Name globally 
     cell.detailTextLabel.text =macroNameSetting.text; 
     [self.tableView reloadInputViews]; 
    } 
    } 
} 

Que 2 und 3

Im AppDelegate erklären

NSString *selectedName; 
UIImage *selectedImage; 

zuordnen Eigenschaft und synthetisieren sie

In Ihrem iconViews

- (void)setIcon : (id)sender{ 
    UIButton *button = (UIButton *)sender; 
    UIImage *selectedImg = [UIImage imageNamed:[NSString stringWithFormat:@"marco%d",button.tag]]; 
    ReturnToFirstViewAppDelegate *appObj=(ReturnToFirstViewAppDelegate *)[[UIApplication sharedApplication]delegate]; 
    appObj.selectedImage = selectedImg; 
// push your viewcontroller 
} 

In jedem Viewcontro ller Zugang sie als

ReturnToFirstViewAppDelegate *appObj=(ReturnToFirstViewAppDelegate *)[[UIApplication sharedApplication]delegate]; 
//For example 
//cell.image = appObj.selectedImage; 
+0

Vielen Dank!Ich schaue deine Antwort jetzt, ich werde das bald versuchen. Ich stimme deine Antwort, es sieht richtig aus. –

+0

Ich deklariere NSString * selectedName; in AppDelegate.h, aber immer noch einen Fehler: Anfrage für Mitglied "selectedName" in etwas nicht Struktur oder Vereinigung? –

+0

Entschuldigung Ich vergesse #import "Appdelegate.h" –

1

Auf jeden Fall, wenn Sie wie mit AppDelegate Variablen nicht, gibt es eine andere Methode, die Sie bei Navigation-Controller verwenden: -

für zB. in "IConViewOne.m"

UITableViewCell* cell = [[[self.navigationController.viewControllers objectAtIndex:1] tableView] cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]] ; 
    cell.imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"marco%d.png",button.tag]]; 

und dann in "ViewWillAppear" von SecondView: -

[self.tableView reloadData]; 

ähnlich zu RootViewController Passieren u geben kann: -

self.navigationController.topViewController.tableView 

OR

[[self.navigationController.viewControllers objectAtIndex:0]tableView] 
+0

stimme deine lösung zu! danke –

+0

Ich denke, das ist noch nicht fertig ... wie kann ich es speichern, wenn ich fertig bearbeite, und verlassen Sie das Programm, als zurück, noch in der Ansicht existieren? –

+0

Wenn Sie sagen möchten, dass Sie diesen Namen und das gewählte Symbol speichern möchten ..i müssen etwas wie "NSUserDefaults" oder "Speichern in Sqlite-Datenbank" –

0

Eine gute Möglichkeit, pas s Informationen von einem Objekt zum anderen, ohne zu wissen, wer der Empfänger ist (und es können mehrere Objekte an der Information interessiert sein), ist eine NSNotification zu posten. Dadurch können Sie die direkte Kenntnis anderer Objekte vollständig vermeiden.

lesen Apples Dokument Notification Programming Topics und es versuchen.

+0

Danke! Freund –

Verwandte Themen