/ / non può mostrare la vista in cima alla barra di stato, uiwindow, obiettivo C - obiettivo-c, ios7, uiwindow

non può mostrare la vista in cima alla barra di stato, uiwindow, obiettivo C - obiettivo-c, ios7, uiwindow

Sto cercando di inserire una sovrapposizione sopra la barra di stato effettuando le seguenti operazioni:

Implementazione di ViewController

- (IBAction)addViewOnTop:(id)sender {
StatusBarOverlayWindow *overlay = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}

File di intestazione StatusBarOverlayWindow

#import <UIKit/UIKit.h>

@interface StatusBarOverlayWindow : UIWindow {
}
@end

Implementazione StatusBarOverLayWindow

@implementation StatusBarOverlayWindow
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Place the window on the correct level and position
self.windowLevel = UIWindowLevelStatusBar + 1;
self.frame = frame;
self.backgroundColor = [UIColor orangeColor];
}
return self;
}
@end

Quando clicco su un pulsante, non succede nulla. Qualcuno ha qualche idea su questo problema. Per favore guida, grazie

risposte:

2 per risposta № 1

Prova a mantenere un forte riferimento al StatusBarOverlayWindow, senza che la variabile andrà fuori campo dopo il addViewOnTop: il metodo è completo Una proprietà funzionerà bene qui.

Esempio:

@interface ViewController : UIViewController

@property (nonatomic, strong) StatusBarOverlayWindow *overlayWindow;

@end

Quindi nel tuo metodo:

- (IBAction)addViewOnTop:(id)sender {
self.overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
overlay.hidden = NO;
[overlay makeKeyAndVisible];
}