1
мне приходится иметь дело с какой-то код, который я не совсем понимаю, похожее на это:законное использование `[self loadView]`?
В PrimaryViewController:
- (void)setup
{
secondViewController = [[SecondViewController alloc] initWithNibName:nil bundle:nil];
[secondViewController loadViewWithFrame:viewFrame webViewURL:url];
[self.view addSubview:secondViewController.view];
...
}
И в SecondViewController:
- (void)loadViewWithFrame:(CGRect)frame webViewURL:(NSString *)url
{
if (![self isViewLoaded]) {
[self loadView];
}
self.view = [[UIView alloc] initWithFrame:frame];
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
[self.view addSubview:webView];
...
}
- Как вы думаете, законно позвонить
[self loadView]
? (Apple обычно не хочет вас) - Какой смысл воссоздать
self.view
сразу после?
Примечание: минимальный SDK проекта - это iOS7.
-loadView вызывается всякий раз, когда вы получаете доступ к свойству вида, и он еще не инициализирован. Блок if в начале -loadViewWithFrame является избыточным. –
Парень, которого вы унаследовали от этого кода, не читал документы Apple и, вероятно, имел некоторые серьезные заблуждения относительно жизненного цикла просмотра. –
Этот код также не имеет смысла. Задачей 'loadView' является установка' self.view'. Но после этого следующая строка кода выбрасывает только что загруженное представление. –