[英]How can I implement my own getter method for a custom UIWindow?
我正在嘗試實現自己的自定義UIWindow類。 它名為SNWindow。 我讀到您必須實現自己的getter方法,這就是我所做的,但從未超越“ Point 1”。 它無限記錄“ Point 1”,在iPhone上顯示黑屏。
AppDelegate.h
#import <UIKit/UIKit.h>
#import "SNWindow.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) SNWindow *window;
- (SNWindow *)window;
@end
AppDelegate.m
...
- (SNWindow *)window
{
NSLog(@"Point 1");
//
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
//
UIViewController *viewController = [storyboard instantiateInitialViewController];
//
_window = [[SNWindow alloc] init];
_window.rootViewController = viewController;
NSLog(@"Point 2");
return _window;
}
關於如何解決它的任何想法?
不要將window
屬性鍵入為SNWindow; 正常方式將其鍵入為UIWindow。 然后,在您的App Delegate類中,您的代碼應如下所示:
- (UIWindow*) window {
UIWindow* w = self->_window;
if (!w) {
w = [[SNWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self->_window = w;
}
return w;
}
App委托的其余部分,例如application:didFinishLaunching...
,應該繼續進行並正常進行(可能只返回YES)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.