- Registriert
- 29.10.09
- Beiträge
- 31
Hallo liebe Apfelgemeinde,
da ich in meinen Semesterferien nun doch schon recht viel Objective-C und Cocoa gepaukt hab, wollte ich einmal in eigenen kleinen Applikationen versuchen. Hier sei nochmal Werbung gemacht für das Buch von Amin Negm-Awad (Objective-C und Cocoa)! Das Buch, als auch der Videopodcast von Peter und Ingo (Xcode von NULL auf hundert) haben mir Einiges gebracht, denke ich.
Nagut, genug drumherum geredet, jetzt zu meinem Anliegen.
Mein kleines Projekt ist der Versuch ein einfaches kleines Adressbuch zu programmieren, in dem man sich Gruppen definieren kann, in denen wiederum Personen samt Kontaktdaten angelegt werden können. Da Bilder manchmal mehr als 1000 Worte sagen, hab ich mal einen Screenie gemacht:
Man erkennt, dass das GUI grob in 3 Teile gegliedert ist:
- links ein TableView, welches die Gruppen anzeigt, samt Add-/Removebuttons
- mittig ein TableView, welches die Personen der links selektierten Gruppe anzeigt, samt Add-/Removebuttons
- rechts ein TabView, welches detaillierte Adress- und Kontaktdaten zur selektierten Person enthält
Ich sage vielleicht noch grob etwas zum Code. Für die beiden TableViews, als auch für das TabView hab ich jeweils einen separaten Controller programmiert. Der Controller für das Gruppentableview übergibt per Delegate die selektierte Gruppe an den Controller für das Personentableview. Dieser Controller wiederum übergibt dem Controller für das Detailtabview die selektierte Person. Der Detailtabviewcontroller kümmert sich dann per Delegate darum, dass die einzelnen Tabs ihre Outlets mit den entsprechenden Personendetails laden.
So jetzt aber zu meinem Problem. Das Standardverhalten von so einem Programm ist es ja, dass die Outlets des Tabs sich nach dem Anlegen einer neuen Person neu laden. Sprich im Falle meines Screenshots müssten im ersten Tab der Name sowie der Vorname der frisch hinzugefügten Person befinden. Das ist allerdings nicht der Fall, weil ich dieses Neuladen der Outlets für das Tabview nur in seinem Delegate undzwar konkret beim Umschalten der Tabs realisieren kann.
Gibt es ein Tableviewdelegate wie "Tableviewinhalte gerade geändert" oder aber existiert eine Möglichkeit das Tabviewdelegate "tabView:didSelectTabViewItem:" aufzurufen, auch wenn ich im Tableview eine Mehrfach- oder gar leere Auswahl habe?
Danke für die Tipps im Voraus!
P.S.: Bei Bedarf kann ich das Projekt auch gern noch hochladen.
Grüße
Marcus
da ich in meinen Semesterferien nun doch schon recht viel Objective-C und Cocoa gepaukt hab, wollte ich einmal in eigenen kleinen Applikationen versuchen. Hier sei nochmal Werbung gemacht für das Buch von Amin Negm-Awad (Objective-C und Cocoa)! Das Buch, als auch der Videopodcast von Peter und Ingo (Xcode von NULL auf hundert) haben mir Einiges gebracht, denke ich.
Nagut, genug drumherum geredet, jetzt zu meinem Anliegen.
Mein kleines Projekt ist der Versuch ein einfaches kleines Adressbuch zu programmieren, in dem man sich Gruppen definieren kann, in denen wiederum Personen samt Kontaktdaten angelegt werden können. Da Bilder manchmal mehr als 1000 Worte sagen, hab ich mal einen Screenie gemacht:
Man erkennt, dass das GUI grob in 3 Teile gegliedert ist:
- links ein TableView, welches die Gruppen anzeigt, samt Add-/Removebuttons
- mittig ein TableView, welches die Personen der links selektierten Gruppe anzeigt, samt Add-/Removebuttons
- rechts ein TabView, welches detaillierte Adress- und Kontaktdaten zur selektierten Person enthält
Ich sage vielleicht noch grob etwas zum Code. Für die beiden TableViews, als auch für das TabView hab ich jeweils einen separaten Controller programmiert. Der Controller für das Gruppentableview übergibt per Delegate die selektierte Gruppe an den Controller für das Personentableview. Dieser Controller wiederum übergibt dem Controller für das Detailtabview die selektierte Person. Der Detailtabviewcontroller kümmert sich dann per Delegate darum, dass die einzelnen Tabs ihre Outlets mit den entsprechenden Personendetails laden.
So jetzt aber zu meinem Problem. Das Standardverhalten von so einem Programm ist es ja, dass die Outlets des Tabs sich nach dem Anlegen einer neuen Person neu laden. Sprich im Falle meines Screenshots müssten im ersten Tab der Name sowie der Vorname der frisch hinzugefügten Person befinden. Das ist allerdings nicht der Fall, weil ich dieses Neuladen der Outlets für das Tabview nur in seinem Delegate undzwar konkret beim Umschalten der Tabs realisieren kann.
Gibt es ein Tableviewdelegate wie "Tableviewinhalte gerade geändert" oder aber existiert eine Möglichkeit das Tabviewdelegate "tabView:didSelectTabViewItem:" aufzurufen, auch wenn ich im Tableview eine Mehrfach- oder gar leere Auswahl habe?
Danke für die Tipps im Voraus!
P.S.: Bei Bedarf kann ich das Projekt auch gern noch hochladen.
Grüße
Marcus