2014-09-28 48 views
25

想知道是否有人最近遇到这个问题......presentingViewController使用时presentViewController为零iOS中8

对于我的视图控制器之一,仅在iOS 8,呼吁presentViewController:animated:completion:,后呈现视图控制器有self.presentingController为零。在iOS7上很好,并且在另一个视图控制器上也不会发生。

documentation表示应该设置它,只要呈现的视图控制器以模态方式呈现即可。鉴于它在iOS 7中的作用,这可能是一个iOS 8的错误?

我已经能够使用视图容器遏制方法解决它,但如果有人以前见过这种方法并知道引发此行为的根本原因,那将会很好。

感谢

+0

你在哪里登录了这个。它在viewWillAppear或viewDidAppear中不为null,但在viewDidLoad中。我不记得它是否与iOS 7不同。 – rdelmar 2014-09-28 04:46:37

+1

所呈现的控制器是第三方控制器,我无法访问(FBFriendPickerViewController)。我看到它为零,当我从代理控制器的代码断点调用'presentViewController:animated:completion:'之后在线上触发了一个断点 – 2014-09-28 08:27:45

回答

37

只好与iOS 8,其中presentingController检查viewDidLoad值时是零类似的问题。

当调用viewDidLoad时,不能保证在导航树中加载视图控制器层次结构。将逻辑移至较后阶段(例如:viewWillAppear)应该可以解决该问题,因为到那时应加载presentingController

+2

这帮了我一个忙。我需要一个指向'presentationViewController'的函数。我创建了一个属性,访问并在'viewDidAppear'中存储'presentsViewController'的指针以备后用。 – Airuop 2016-06-28 06:01:47

相关问题