合法使用`[self loadView]`?

时间:2016-02-04 02:42:00

标签: ios objective-c

我必须处理一些我不太了解的代码,类似于:

在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];
    ...
}
  1. 您认为致电[self loadView]是否合法? (Apple通常不希望你这样做)
  2. 之后重新制作self.view有什么意义?
  3. 注意:项目最小SDK是iOS7。

1 个答案:

答案 0 :(得分:0)

在给定示例中,呼叫[self loadView]不合法。

在给定示例中,重新创建self.view不合法:它使initWithNibName:bundle:无用。

因此可以删除这两个语句。