[英]load webview content in the initializer
這是一款iPad應用。 按下兩個按鈕之一,它會顯示一個包含webview的模態視圖控制器,該控制器將顯示PDF。 我創建了包含webview的UIViewController類,我想根據用戶推送的按鈕使用2個初始化器中的1個。 當我初始化對象時,我想設置顯示哪個PDF。 模態視圖即將出現,但它是空白的(未顯示PDF)。 但是,當我在 - (void)viewDidLoad {}中使用相同的代碼時,它確實有效。 為什么是這樣? 謝謝!
- (id)initAsPi{
NSLog(@"initAsPi Called");
[super init];
NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"PiPdf" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:urlAddress];
NSURLRequest *urlRequestObj = [NSURLRequest requestWithURL:url];
[prescribingInfoWebView loadRequest:urlRequestObj];
return self;
}
執行視圖控制器的init方法時,它尚未加載其視圖。 所以prescribingInfoWebView
在這一點上可能是nil
(你應該檢查調試器),所以你試圖發送給它的消息沒有任何效果。
初始化
你的初始化方法是錯誤的。 閱讀實現初始化程序 - 處理初始化失敗...
看起來應該......
- (id)initAsPi {
self = [super init];
if ( self ) {
// Your initialization code
}
return self;
}
為什么它在viewDidLoad中工作而不在initAsPi中?
prescribingInfoWebView是零,除非你在其他地方做一些模糊的事情。
您可能正在loadView方法中創建prescribingInfoWebView,或者如果您從XIB加載視圖,它會在視圖加載期間自動初始化。
UIViewControllers懶洋洋地加載它們的接口。 這意味着在Interface Builder或-loadView中設置的任何UI屬性都將為nil,直到對視圖的某些請求導致其加載。 在初始化程序中,這幾乎肯定是問題所在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.