J'ai écrit un tweak pour Cydia, il ajoute une icône à la barre d'état. Il fonctionne bien sur l'écran d'accueil et lorsque SpringBoard est lancé, également, si une application est déjà lancée alors il fonctionne bien, Cependant, si une application (telle que Facebook ou Twitter) est fermée (complètement) et que l'icône est affichée, lors du lancement de l'application, l'icône disparaît. L'icône est affichée en utilisant libStatusBar en utilisant ce code :
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"];
J'ai également essayé d'utiliser les méthodes suggérées dans libStatusBar
Fichier README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
J'ai essayé de remplacer -(id)init
et en mettant à jour l'icône à cet endroit, mais le résultat est le même.
Le code présenté ci-dessus est appelé à partir d'un static void
Cette fonction est appelée plusieurs fois, par exemple à partir de la fonction -(void)applicationDidFinishLaunching:(id)application
sous %hook SpringBoard
y -(void)ringerChanged:(int)changed
Tout à l'intérieur Tweak.xm
. Le problème se produit dans iOS7
également.