UIWindow
in a Storyboard project can be subclassed as explained in Apple's UIApplicationDelegate
reference:
window
When a storyboard is being used, the application must present the
storyboard by adding it to a window and putting that window on-screen.
The application queries this property for the window. The retained
reference to the window by this property is necessary to keep the
window from being released. If the value of the property is nil
(the
default), the application creates a generic instance of UIWindow
and
assign it to this property for the delegate to reference. You may
implement the getter method of this protocol to provide the
application with a different window.
In other words in your AppDelegate
implementation simply add the following getter
Objective-C
- (MyCustomWindow *)window
{
static MyCustomWindow *customWindow = nil;
if (!customWindow) customWindow = [[MyCustomWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
return customWindow;
}
Swift
var customWindow: MyCustomWindow?
var window: UIWindow? {
get {
customWindow = customWindow ?? MyCustomWindow(frame: UIScreen.mainScreen().bounds)
return customWindow
}
set { }
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…