美文网首页
iOS 视图控制器模态

iOS 视图控制器模态

作者: songsongchen | 来源:发表于2016-08-16 10:15 被阅读211次
    heyu.jpg

        当同一个视图控制器,在同一个时间,只能present一个另外的视图控制器,如果当前的VC已经present了,再次present一个VC时,就会提示失败;如果想继续present,就必须将原来present的控制器dismiss。

      控制器的两个可能很多人都没注意的两个属性presentedViewController和presentingViewController;他们分别是被present的控制器和正在presenting的控制器。比如说, 控制器A和B,[A presentViewController B animated:YES completion:nil]; 那么A相对于B就是presentingViewController,B相对于A是presentedViewController,即

                    B.presentingViewController = A;

                     A.presentedViewController = B;

    if(self.presentingViewController.presentingViewController) {

                     self.presentingViewController.view.alpha=0; 

     [self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

    }else{

             [self  dismissViewControllerAnimated:YES completion:nil];

    }

    可以作为退出当前控制器,

    比如说,现在有个C界面,C界面被显示出来,可能有两种情况,一是modal出来的,另外一种是push出来的,这时候就可以通过当前界面对象的presentingViewController属性来判断到底属于哪种情况,如果是nil,表示是UINavigationController对象push过来的,如果不是则是modal过来的。

    相关文章

      网友评论

          本文标题:iOS 视图控制器模态

          本文链接:https://www.haomeiwen.com/subject/eqlpsttx.html