UISwitch Control im UINavigationBar

Posted by admin | Development,iPhone,Objective-C | Tuesday 28 April 2009 00:47

In der neuen iPhone / iPod touch Anwendung “Zitate: Latein” ist in einer View ein UISwitch Objekt zum Umschalten zwischen der lateinischen und deutschen Anzeige eingebaut. Leider kann man dieses Control nicht weiter anpassen. Deshalb hier leider nur eine kurze Beschreibung wie es implementiert ist. Wenn eine UIView in einen UINavigationController zur Ansicht gepushed wird kann man zum Beispiel einen Button in dem rechten Bereich des Navigationbars anzeigen.

- (void)viewDidLoad {
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]
    initWithTitle:@"Edit"
    style:UIBarButtonItemStylePlain
    target:self
    action:@selector(editBtn)] autorelease];
}

In diesem Fall erscheint nach dem Laden der View ein Button mit dem Label “Edit” im NavigatinBar. Bei Klick wird im aufrufenden ViewController die Methode

- (void)editBtn;

aufgerufen.

Wenn man nun statt einem UIBarButtonItem ein anderes UIControl wie den UISwitch einfügen möchte muss man den UIButton mit einer Custom View initilisieren. In diesem Fall mit dem UISwitch:

UISwitch *sw = [[UISwitch alloc] init];
[sw addTarget:self action:@selector(switched) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithCustomView: sw];
self.navigationItem.rightBarButtonItem = bi;
[sw release];
[bi release];

Wenn der UISwitch den Status wechselt wird im aufrufenden Controller die Methode

- (void)switched;

aufgerufen.

Share/Save/Bookmark

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment