J'ai écrit un tweak pour Cydia, il ajoute une icône à la barre d'état. Cela fonctionne bien sur l'écran d'accueil et lorsque SpringBoard est lancé, également, si une application est déjà lancée, cela fonctionne bien, cependant, si une application (telle que Facebook ou Twitter) est fermée (complètement) et l'icône s'affiche, lorsque lancer l'application, cela fera disparaître l'icône. L'icône est affichée à l'aide de 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 le libStatusBar
fichier README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
J'ai essayé de remplacer -(id)init
et de mettre à jour l'icône là-bas, mais le même résultat.
Le code ci-dessus est appelé à partir d'une static void
fonction. cette fonction est appelée plusieurs fois, par exemple de -(void)applicationDidFinishLaunching:(id)application
dessous %hook SpringBoard
et-(void)ringerChanged:(int)changed
Tout à l'intérieur Tweak.xm
. Le problème se produit iOS7
également.