ฉันเขียน tweak สำหรับ Cydia มันเพิ่มไอคอนลงในแถบสถานะ มันทำงานได้ดีบนหน้าจอหลักและเมื่อเปิดตัว SpringBoard เช่นกันหากมีการเปิดตัวแอปแล้วก็ทำงานได้ดีอย่างไรก็ตามหากปิดแอพ (เช่น Facebook หรือ Twitter) (สมบูรณ์) และไอคอนจะปรากฏขึ้นเมื่อ เมื่อเปิดแอพจะทำให้ไอคอนหายไป ไอคอนถูกแสดงโดยใช้ libStatusBar โดยใช้รหัสนี้:
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"];
ฉันลองใช้วิธีที่แนะนำในlibStatusBar
ไฟล์ README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
ฉันพยายามเอาชนะ -(id)init
และอัปเดตไอคอนที่นั่น แต่ผลลัพธ์เดียวกัน
รหัสที่แสดงด้านบนถูกเรียกจากstatic void
ฟังก์ชั่น ฟังก์ชันนี้ถูกเรียกใช้หลายครั้งตัวอย่างเช่นจาก-(void)applicationDidFinishLaunching:(id)application
ใต้%hook SpringBoard
และ-(void)ringerChanged:(int)changed
Tweak.xm
ภายในทั้งหมด ปัญหาก็เกิดขึ้นiOS7
เช่นกัน