Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios DetailViewController仅在第二次加载网页_Ios_Xcode_Uiviewcontroller_Uiwebview_Uisplitviewcontroller - Fatal编程技术网

Ios DetailViewController仅在第二次加载网页

Ios DetailViewController仅在第二次加载网页,ios,xcode,uiviewcontroller,uiwebview,uisplitviewcontroller,Ios,Xcode,Uiviewcontroller,Uiwebview,Uisplitviewcontroller,好的,我创建了一个主细节应用程序,当用户单击单元格时,它会在DetailViewController中加载一个网页。问题是,在iPhone版本(这是一个通用应用程序)上,我必须单击手机,然后返回MasterViewController,然后再次单击手机以加载网页。我只需要做一次,我想这就像是第一次启动网页或其他东西。但在iPad版本中,它第一次加载一个。怎么了 下面是我的ApplicationIDFinishLaunching AppDelegate.m文件的代码,我在其中初始化DetailVi

好的,我创建了一个主细节应用程序,当用户单击单元格时,它会在DetailViewController中加载一个网页。问题是,在iPhone版本(这是一个通用应用程序)上,我必须单击手机,然后返回MasterViewController,然后再次单击手机以加载网页。我只需要做一次,我想这就像是第一次启动网页或其他东西。但在iPad版本中,它第一次加载一个。怎么了

下面是我的ApplicationIDFinishLaunching AppDelegate.m文件的代码,我在其中初始化DetailViewController

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPhone" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    self.window.rootViewController = self.navigationController;
    masterViewController.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPhone" bundle:nil];
} else {
    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPad" bundle:nil];
    UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];

    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil];
    UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];

    masterViewController.detailViewController = detailViewController;

    self.splitViewController = [[UISplitViewController alloc] init];
    self.splitViewController.delegate = detailViewController;
    self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];

    self.window.rootViewController = self.splitViewController;
}
以下是didSelectCellAtIndexPath的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSDictionary *object = _objects[indexPath.row];
    NSURL *ex = [NSURL URLWithString:[object objectForKey:@"url"]];
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    self.detailViewController.detailItem = object;
        [self.detailViewController loadURL:ex];
        self.detailViewController.detailItem = object;
        [self.detailViewController loadURL:ex];
        [self.navigationController pushViewController:self.detailViewController animated:YES];
    } else {
        self.detailViewController.detailItem = object;
        [self.detailViewController loadURL:ex];
    }
}

在iPad上,你在一个分割视图控制器中有两个控制器,因此它们被实例化,并且在应用程序启动时加载它们的视图。在iPhone上,第二个控制器是实例化的,但在你按下它之前,它的视图不会被加载——我认为这就是区别所在。您应该尝试将detailController方法loadURL:移动到它的ViewDidAspect方法,而不是将它放在主控制器的DidSelectRowatineXpath方法中