从其中一个子视图控制器中删除UIPageViewController的正确步骤是什么?

时间:2014-02-17 03:16:49

标签: ios objective-c cocoa-touch uiviewcontroller uipageviewcontroller

我有一个UIPageViewController子类,其中包含一堆UIViewController个子类。

在其中一个UIViewController子类中的某个时刻,如果用户执行某些操作,我想删除整个UIPageViewController系统,以便仅显示最初添加到的基础子视图。

我将UIPageViewController子类添加为主视图控制器的子视图控制器,如下所示:

ImageGalleryPageViewController *galleryPageViewController = [[ImageGalleryPageViewController alloc] initWithImagesAndCaptions:imagesAndCaptions];
[self addChildViewController:galleryPageViewController];
[self.view addSubview:galleryPageViewController.view];
[galleryPageViewController didMoveToParentViewController:self];

我很好奇从内部UIViewControllers删除它的最佳做法是什么。

我的第一反应是:

[self.imageGallery removeFromParentViewController];
[self.imageGallery.view removeFromSuperview];

(在我的UIViewController子类中,我有一个对它所包含的UIPageViewController子类的引用,我告诉UIPageViewController子类被删除。

这是......好吗?我恐怕感觉马虎,好像我删除了包含UIPageViewController拨打电话的UIViewController,也许第二个removeFromSuperview电话不会被调用,因为视图会被视为除去。

在执行上述两种方法的UIPageViewController子类上使用专门的方法会更好吗?有什么不同的东西?

此外,为什么有必要同时打电话?为什么removeFromParentViewController也不会删除其view?为什么有必要添加两者?

1 个答案:

答案 0 :(得分:0)

我会评论,但我没有足够的代表。 :(

我建议你说什么:

  

在执行上述两种方法的UIPageViewController子类上有一个专门的方法会更好吗?

您可以轻松地使用NSNotification。