Vorschlag zur Vorgehensweise gesucht

vandalismus

Neues Mitglied
Thread Starter
Dabei seit
02.09.2014
Beiträge
7
Reaktionspunkte
0
Hallo liebe Community,
es ist mein erster Beitrag in diesem Forum deshalb bitte weist mich darauf hin, falls ich etwas falsch gemacht habe.

erstmal zu meiner Person:
Ich habe die Fachhochschulreife an einer IT-spezifischen Schule gemacht wo mir Java gelehrt wurde.
Im Studium wurde das Java etwas vertieft und Mysql kam dazu.

Ich habe in etwa 3 Jahre Programmierungserfahrung und muss echt sagen, dass Xcode eine schwere Hürde ist.

Ich möchte eine App programmieren... und wie vielen hier weiß ich nicht explizit genau wie ich diese vornehmen soll...

Damit der Beitrag nicht allzulang wird:

Es kommt ein Hauptfenster

Hier klickt/tippt der User etwas an und kommt zu einem zweiten View. Hier soll der User auswählen, welches Geschlecht er hat. (2 Buttons)

Jetzt kommen wir zu dem Teil wo ich einfach nicht weiter weiß:

Es soll ein TableView gezeigt werden, welcher dynamisch sein soll.
Ich habe mir etliche Tutorials angeschaut und bekomme dies einigermaßen hin... (MySql mit json)
Sprich: alle Titel in der Datenbank werden angezeigt untereinander.

Jetzt möchte ich eine Zelle bzw. einen Titel wählen und auf dem nächsten View soll der restliche Inhalt der Datenbank angezeigt werden.

Z.b.
ich klicke im Tableview : Autofrontscheibe putzen
Dann soll ein View kommen, wo schön strukturiert mit Bildern eine Anleitung kommt, wie man eine Autofrontscheibe nutzt.

Wie bekomme ich das hin?

Vielen Dank für eure Hilfe

Mit freundlichen Grüßen
Vandalismus
 
  • Gefällt mir
Reaktionen: vandalismus
Vielen Dank für deine schnelle Antwort!
der NavigationViewController ist drin und nach langem suchen habe es sogar transparent gekriegt :D

Ich frage mich, wie ich aber aus der Datenbank den ganzen Text anzeigen lasse.
Es sind kleine Feinheiten die viel Zeit benötigen...
 
Du kannst z.B. die Datenbank z.B. mit dem IndexPath der gedrückten TableCell abfragen und dann z.B. das generierte Daten-Objekt in der prepareForSegue-Methode übergeben. Im obigen Link zieht er die Daten des Autos aus einem Array, das würdest du eben durch deine Datenquelle ersetzen (die Methoden zum Datenbankzugriff / JSON-Parsing, hast du ja schon).
 
  • Gefällt mir
Reaktionen: vandalismus
Hallo,

ich habe neulich für einen Freund ein Beispielprojekt gebaut, dass einige grundliegende Dinge aufzeigt.

- Wie wird ein UIWindow nach dem Programmstart erstellt?
- Wie wird ein UITabBarController erzeugt?
- Wie wird ein DataController erzeugt?
- Wie liest ein DataController eine Plist/Text-Datei
- Wie kann ein UIViewController mit einem UITableView Daten anzeigen?
- Wie kann mit einem Touch auf eine UITableViewCell in Abhängig des NSIndexPath ein nächster ViewController gepusht werden?
- Wie kann eine UITableViewCell ein Bild anzeigen?
- Wie können "globale" Konstanten definiert werden?
- Wie kann Xcode automatisch die Build-Number hochzählen?

Alle diese Fragen und viel mehr werden in meinem Projekt, so hoffe ich zumindest, sehr gut beantwortet.
Hier gibt es das Projekt: http://www.file-upload.net/download-9473711/2014-09-03---SBExample.zip.html

Leider lassen sich in dem Forum keine zip-Dateien mehr hochladen, so dass das "Wissen" hier nicht erfasst werden kann.

Viele Grüße
 
  • Gefällt mir
Reaktionen: vandalismus
Danke Leute!

Ich hänge gerade an einer stelle und verzweifle ehrlich gesagt...

Es ist mit Sicherheit simple, jedoch weiß ich es nicht in objektiv -c zu schreiben...

Ich habe einen Tableview
in diesem Tabelview wird aus der Mysql Datenbank alle Inhalte aus einer spalte angezeigt. Die spalte heißt Titel.
Dies klappt prima:
code :
// das ist mein Timer welche regelmäßig die Daten holt

Code:
- (void)viewDidLoad
{
[superviewDidLoad];
NSTimer *myTimer = [NSTimertimerWithTimeInterval:2.0target:selfselector:@selector(start) userInfo:nilrepeats:YES];
[[NSRunLoopmainRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode];

- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuse"forIndexPath:indexPath];

// aus dem Serverside erzeugtem json werden die Inhalte rausgelesen und in die einzelnen Zellen rein geschrieben
NSDictionary *info = [json objectAtIndex:indexPath.row];
cell.textLabel.text = [info objectForKey:@"Name"];
return cell;
}

Jetzt habe ich einen neuen Viewcontroller
Hier möchte ich den Inhalt des Titels anzeigen lassen.

Ich bekomme es einfach nicht gebacken, die ID von der ausgewählten Zelle rauszulesen...

angenommen in der 3 Zeile des Tableviews steht " Herr der Ringe "
der User klickt/tippt diese an und es erscheint ein neuer view welche eine Beschreibung von Herr der Ringe anzeigen soll.
Die Beschreibung ist in der Datenbank mit der gleichen ID versehen wie der Titel.

Ich möchte diese ID irgendwie an den Server geben, dieser soll den Inhalt auslesen und wieder anzeigen...

ich hoffe ich konnte mein Problem genauestens erklären...

der erste Schritt lautet : ID auslesen

Vielen Dank für eure Mühe!
 
Hast Du nicht schon bereits alle Daten geholt und im Dictionary "info" stehen?

Das Stichwort heisst Segue.

Code:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
   
        
        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        DeinViewController *detailViewController = [segue destinationViewController];
        
        id myValue = [deinArray objectAtIndex:selectedRowIndex.row];
        detailViewController.title = [myValue objectForKey:@"titel"];
        detailViewController.text = [myValue objectForKey:@"inhalt"];
        detailViewController.bild = [myValue objectForKey:@"bild"];

}
 
  • Gefällt mir
Reaktionen: vandalismus
Hat mit dem Problem hier nix zu tun, sorry.
Wenn du gerade mit Obj-C anfängst, könntest du evtl. gleich zu Swift wechseln.
 
Hat mit dem Problem hier nix zu tun, sorry.
Wenn du gerade mit Obj-C anfängst, könntest du evtl. gleich zu Swift wechseln.

Könnte man überlegen, aber da die meisten Tutorials im Netz und Antworten auf Stackoverflow noch in Objective C sind, würde ich momentan noch dazu tendieren, die Apple APIs mit Objective C zu lernen. Der Wechsel zu Swift dürfte dann eigentlich nicht schwer fallen, wenn die Sprache mal die Beta verlässt. Apple hat ja angekündigt, dass das jetzige Swift nicht sourcekompatibel zur endgültigen Version sein muss.

Wenn ich mir die Sample-Code-Beispiele zur WWDC anschaue, kommt auch von Appple selbst noch einiges nur in Objective C.
 
Hast Du nicht schon bereits alle Daten geholt und im Dictionary "info" stehen?

Das Stichwort heisst Segue.

Code:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
   
        
        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        DeinViewController *detailViewController = [segue destinationViewController];
        
        id myValue = [deinArray objectAtIndex:selectedRowIndex.row];
        detailViewController.title = [myValue objectForKey:@"titel"];
        detailViewController.text = [myValue objectForKey:@"inhalt"];
        detailViewController.bild = [myValue objectForKey:@"bild"];

}

Danke für deine Antwort !
Fühle mich gerade ehrlich gesagt echt dämlich... aber wo steht das dictionary?
Wozu dient es und was kann man damit prüfen? :O

Danke!
 
Danke für deine Antwort !
Fühle mich gerade ehrlich gesagt echt dämlich... aber wo steht das dictionary?
Wozu dient es und was kann man damit prüfen? :O

Danke!

Er meint, dass du hier

Code:
NSDictionary *info = [json objectAtIndex:indexPath.row];

u.U. schon ein NSDictionary angelegt hast, das die gesamten Daten deines Objektes enthält, aber da wir dein json nicht kennen, ist das nur eine Vermutung.

Beim Aufbau der Tabelle holst du aus diesen Dictionary nur den Namen

Code:
cell.textLabel.text = [info objectForKey:@"Name"];

Wenn dieses Dictionary auch andere Daten enthält, würdest du auf diese analog zugreifen und an den DetailViewControler übergeben können, siehe oben.

Um eine Antworte geben zu können, müsste man aber ungefähr wissen, wie dein JSON aufgebaut ist und, was im NSArray "json" landet, das bei dir im Prinzip eine NSArray of NSDictionaries "info" ist.
 
Er meint, dass du hier

Code:
NSDictionary *info = [json objectAtIndex:indexPath.row];

u.U. schon ein NSDictionary angelegt hast, das die gesamten Daten deines Objektes enthält, aber da wir dein json nicht kennen, ist das nur eine Vermutung.

Beim Aufbau der Tabelle holst du aus diesen Dictionary nur den Namen

Code:
cell.textLabel.text = [info objectForKey:@"Name"];

Wenn dieses Dictionary auch andere Daten enthält, würdest du auf diese analog zugreifen und an den DetailViewControler übergeben können, siehe oben.

Um eine Antworte geben zu können, müsste man aber ungefähr wissen, wie dein JSON aufgebaut ist und, was im NSArray "json" landet, das bei dir im Prinzip eine NSArray of NSDictionaries "info" ist.

also mein json Datei enthält ID name und message (name sollte eigentlich Titel heißen aber wie dem auch sei)

In der Tat kann ich durch abrufen einer Zeile alle Werte rauslesen.

NSLog(@" %@ " , [json objectAtIndex:[indexPath row]]);
gibt mir ID Name und Message

Im ersten Tableview lasse ich alle Namen anzeigen ( Sprich alle Titel )

im nächsten View soll der entsprechende Message angezeigt werden.

Ich bin es von Java gewöhnt, nur die ID zu übernehmen und dann auf der nächsten Seite per PHP mit einem Mysqlstatement den Datensatz entsprechend raus zu holen...
Jetzt bemerke ich aber, dass es in Objektiv C ganz anders geht...

Ich weiß gerade echt nicht weiter...

Wäre jemand so nett und würde mir per Teamviewer helfen?

Wäre Sehr nett!

Vielen Dank für Eure Antworten und vorallem dir Chris25!
 
Zurück
Oben Unten