UIWindow
trong một dự án Storyboard có thể được subclassed như được giải thích trong UIApplicationDelegate
tài liệu tham khảo của Apple:
cửa sổ
Khi một kịch bản đang được sử dụng, ứng dụng phải xuất trình kịch bản bằng cách thêm vào một cửa sổ và đặt cửa sổ đó trên màn hình. Ứng dụng truy vấn thuộc tính này cho cửa sổ. Tài liệu này được giữ lại tham chiếu đến cửa sổ này là cần thiết để giữ cho cửa sổ không được phát hành. Nếu giá trị của thuộc tính là nil
(mặc định là ), ứng dụng sẽ tạo một phiên bản chung của UIWindow
và gán cho thuộc tính này để đại biểu tham chiếu. Bạn có thể triển khai phương thức getter của giao thức này để cung cấp ứng dụng với một cửa sổ khác.
Nói cách khác trong việc thực hiện AppDelegate
bạn chỉ cần thêm các getter sau
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 { }
}
Nguồn
2012-05-14 08:48:17
Bạn có thể vui lòng cung cấp cách tôi có thể ghi đè getter trong Swift không? –
Tôi đã cập nhật câu trả lời với mã Swift –
Cảm ơn rất nhiều .. Nó đã hoạt động. Tôi không tạo ra setter cho điều đó để tôi gặp lỗi. –