[英]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.