2012-04-06 21 views
0

Ich habe eine UIViewController, die eine Methode für ein Singleton-Objekt aufruft, in dem bei einer bestimmten Bedingung eine UIAlertView angezeigt wird. Wenn der Benutzer auf den Knopf in der UIAlertView tippt, möchte ich die UIAlertView verschwinden lassen (was es im Moment tut) und dann die UIViewController dahinter, um zu einer anderen Szene zu wechseln. Mein Problem ist, dass die UIAlertView aus der Singleton-Klasse ist, während die Überleitung auf der UIViewController durchgeführt werden muss.Aufrufen eines Segments in einer Klasse aus einer anderen Klasse

In Singleton.m:

-(void)alertView:(UIAlertView *)alertView 
clickedButtonAtIndex:(NSInteger)buttonIndex { 
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex]; 
    if ([buttonTitle isEqualToString:@"Button!"]) { 
     [self performSegueWithIdentifier: @"Segue!" sender: self]; 
    } 
} 

Meine Frage ist, was ich mit self ersetzen kann, dass mir erlauben wird, die UIViewController zu informieren, dass es Zeit ist, einen Übergang zu tun?

Antwort

0

'Benachrichtigen' ist ein gutes Wort. :) Ich schlage vor, den View-Controller auf eine NSNotification warten zu lassen, die der Singleton posten wird, wenn er möchte, dass der Übergang stattfindet. Dann würde der Code perform... in die View-Controller-Methode verschoben, die als Reaktion auf die Benachrichtigung aufgerufen wird.

+0

Danke, das hat perfekt funktioniert! Ich war völlig unbekannt mit 'NSNotification's, also habe ich einfach ein kurzes Tutorial darüber gelesen, wie man sie benutzt, und deine Idee hat funktioniert! Nochmals vielen Dank: D –

Verwandte Themen