Fragen zum Adressbuch

  • Fragen zum Adressbuch

    Hallo!

    Ich habe zwei Probleme in der Umsetzung einer Adressbuch-Anbindung (iPhone!). Grundsätzlich erzeuge ich bei einem präsentierten ModalView einen neuen ABPerson-Record, den ich dem Addressbuch hinzufüge.

    Quellcode

    1. if( !ABAddressBookAddRecord(addressbook, record, &error) ) {
    2. NSLog(@"error adding person to address book");
    3. }
    4. if( !ABAddressBookSave(addressbook, &error) ) {
    5. NSLog(@"error saving address book");
    6. }
    7. ABPersonViewController *person = [[ABPersonViewController alloc] init];
    8. [person setAddressBook:addressbook];
    9. [person setDisplayedPerson:record];
    10. [person setDisplayedProperties:properties];
    11. [person setPersonViewDelegate:self];
    12. [person setAllowsEditing:YES];
    13. UINavigationController *personNavController = [[UINavigationController alloc] initWithRootViewController:person];
    14. [person release];
    15. [self presentModalViewController:personNavController animated:NO];
    Alles anzeigen
    1. Frage: Wenn ich (bei geöffnetem ModalView) die genannte Funktion presentModalViewController: aufrufe, passiert - nichts. Es öffnet sich nicht die gewünschte Kontakt-Ansicht, obwohl die record-Referenz stimmt (habe ich überpüft).

    Wenn ich diesen aufruf aber mit:

    Quellcode

    1. [[self view] addSubview:[personNavController view]];
    mache, erscheint die gewünschte Ansicht. Was mache ich hier falsch?

    ##EDIT: Ich sollte hinzufügen, dass der View im ModalView nicht der View des VC ist, auf den ich mich mit self beziehe ... ich vermute, dass das der Grund für das Problem ist. Allerdings kenne ich den ModalView-Controller nicht (naja, ich kenne ihn schon, er ist nur in der Methode nicht bekannt ... Wenn ich aber diesen ModalView vorher schließe, erscheint der neue ModalView auch nicht. Ich habe hier ein Timing-Problem im Verdacht. Kann ich irgendwoher eine Nachricht bekommen, wenn der ModalView weg ist und ich den neuen öffnen kann?


    2. Frage: Ich hatte eigentlich gedacht, dass ABPersonViewController selbst für den erforderlichen "Done"- oder "Speichern"-Button sorgt, schließlich gibt es die Protokoll-Methode - (void)personViewControllerDidCancel:(ABPersonViewController *)personViewController. Aber dieser Button erscheint nicht. Muss ich ihn selbst hinzufügen? Aber wozu dann die Protokoll-Methode ...?