Ich habe eine Optimierung für Cydia geschrieben, die der Statusleiste ein Symbol hinzufügt. Es funktioniert einwandfrei auf dem Startbildschirm und wenn SpringBoard gestartet wird. Wenn eine App bereits gestartet ist, funktioniert es einwandfrei. Wenn jedoch eine App (wie Facebook oder Twitter) geschlossen ist (vollständig) und das Symbol angezeigt wird, wann Wenn Sie die App starten, verschwindet das Symbol. Das Symbol wird mit libStatusBar mit folgendem Code angezeigt:
if(icon) // if icon needs to be removed
{
[icon release];
icon = nil;
}
...
// add the icon to the status bar
icon = [[%c(LSStatusBarItem) alloc] initWithIdentifier:[NSString stringWithFormat:@"muteIconLablabla"] alignment:StatusBarAlignmentRight];
icon.imageName = [NSString stringWithFormat:@"Mute"];
Ich habe auch versucht, die in der libStatusBar
README-Datei vorgeschlagenen Methoden zu verwenden
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Ich habe versucht, -(id)init
das Symbol dort zu überschreiben und zu aktualisieren, aber das gleiche Ergebnis.
Der oben gezeigte Code wird von einer static void
Funktion aufgerufen . Diese Funktion wird mehrmals aufgerufen, zum Beispiel von -(void)applicationDidFinishLaunching:(id)application
unter %hook SpringBoard
und-(void)ringerChanged:(int)changed
Alles drinnen Tweak.xm
. Das Problem tritt auch in iOS7
auf.