在第二轮app上重新初始化整个子视图

时间:2011-07-12 23:49:51

标签: objective-c ios cocoa-touch

我正在编写一个创建子视图的应用程序,并将其添加到超级视图中,在子视图中执行它需要做的事情,以及何时执行:

[self.view removeFromSuperview];

然后按按钮再次转到第二个视图,活动将保留在上次我在子视图中的完成状态。也就是说,在子视图中它播放视频,当我第二次回来时,视频处于完成状态。

有谁能请告诉我如何重新初始化整个事情,以便它再次完成“viewDidLoad”?因为在我看来,它并没有“重新加载视图”。

这就是我在主视图中所做的。

-(IBAction) localize: (id) sender{
    [self showSplash];
}
-(void) showSplash{
    UIViewController *modalViewController = [[UIViewController alloc] init];
    modalViewController.view = splash;
    [self presentModalViewController:modalViewController animated:YES];
    [self performSelector:@selector(hideSplash) withObject: nil afterDelay:2.5];
}
-(void) hideSplash{
    [[self modalViewController] dismissModalViewControllerAnimated:NO];
    [[self modalViewController] release];
    [self.view addSubview:locatorView.view];
}

在“locatorViewController”viewDidLoad中,我正在初始化一个MPMoviePlayerController,并将其添加为主视图子视图的子视图。视频播放完毕后,我有一个按钮,允许用户返回并重试 - 可能会显示另一个视频。但是MPMoviePlayerController仍然是第一个视频。

1 个答案:

答案 0 :(得分:1)

我会创建一个动作/方法来执行addsubview调用,就在该行之前,您可以初始化视频控制器。

只需创建另一个操作/方法即可执行removefromsuperview调用。

无论哪种方式,我相信您必须更具体地了解您正在做的事情,可能会发布您正在创建,添加,删除等的代码。您还要尝试添加什么类型的视图。根据我的假设,它可能是一个MPMoviePlayerViewController。