Tag: ios8 presentviewcontroller

dismissViewControllerAnimated:完成:在iOS 8上

在iOS <= 7中,直接调用dismissViewControllerAnimated:completion:会导致presentedViewController dismissViewControllerAnimated:completion: nil 。 在iOS 8中, presentedViewController的ViewController仍然指向呈现的视图控制器,直到完成块被执行。 [self dismissViewControllerAnimated:NO completion:^{ //self.presentedViewController is nil }]; //self.presentedViewController is nil on iOS 7, but not nil on iOS 8 因此,在iOS 8中,我们不能依赖于presentedViewController ViewController属性来找出哪个viewcontroller是当前顶级的可见视图控制器。 在iOS 8中,警报需要呈现给视图控制器(这引起了另一个问题 )。 他们不会显示我们试图呈现的视图控制器是否已经呈现视图控制器。 如果我刚刚解雇了我提交的UIAlertController并在当前顶部可见的UIAlertController (通过recursionsearch最后UIAlertController显示UIAlertController ,那么它当然不会显示,但会logging一条错误消息:“警告:尝试呈现其视图不在窗口层次结构中!“ 这是在iOS 8中的错误还是只是新的方式? 我怎样才能find我可以提出我的UIALertController的viewcontroller?

如何消除一堆模态视图控制器与animation,而不会在屏幕上闪烁任何提交的VC之间的顶部和底部?

更新:通过下面的“截图”方法大纲修复。 这工作,但有没有更优雅的方式? 我将如何解决一堆模式视图控制器与animation,而不会在屏幕上闪烁任何提交的VC之间的顶部和底部? 试图用animation做到这一点是行不通的。 请参阅下面的代码和内嵌评论,描述我的问题。 您可以将这段代码复制/粘贴到Xcode中的一个新项目中,以便自己查看! // // ViewController.m // MultipleModals // #import "ViewController.h" #import "MyViewController.h" #import "MyHelper.h" @interface ViewController () @end @implementation ViewController static BOOL doAgain = YES; // So when red appears again, we don't endlessly cycle (for testing) – (void)viewDidAppear:(BOOL)animated { // Invoke super [super viewDidAppear:animated]; // Prevent loop when we dismiss […]