美文网首页
iOS开发之UIViewController 的 present

iOS开发之UIViewController 的 present

作者: 朱晓晓的技术博客 | 来源:发表于2017-11-08 14:40 被阅读56次
    #import "TestViewController.h"
    #import "OneViewController.h"
    

    在TextViewController写入点击事件:

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        [self click];
    }
    
    - (void)click
    {
        OneViewController * vc = [OneViewController new];
        
        [self presentViewController:vc animated:YES completion:nil];
        
        
        NSLog(@"%@",NSStringFromClass([self.presentationController class]));
        NSLog(@"%@",NSStringFromClass([self.presentedViewController class]));
        NSLog(@"%@",NSStringFromClass([self.presentingViewController class]));
        
        NSLog(@"%@",NSStringFromClass([vc.presentationController class]));
        NSLog(@"%@",NSStringFromClass([vc.presentedViewController class]));
        NSLog(@"%@",NSStringFromClass([vc.presentingViewController class]));
        
    }
    

    打印结果:

    2015-10-07 11:49:38.933 ceshi[2610:61561] _UIFullscreenPresentationController
    2015-10-07 11:49:38.933 ceshi[2610:61561] OneViewController
    2015-10-07 11:49:38.933 ceshi[2610:61561] (null)
    2015-10-07 11:49:38.934 ceshi[2610:61561] _UIFullscreenPresentationController
    2015-10-07 11:49:38.934 ceshi[2610:61561] (null)
    2015-10-07 11:49:38.934 ceshi[2610:61561] TestViewController
    

    在OneViewController的ViewDidAppear写入:

    - (void)viewDidAppear:(BOOL)animated
    {
        
        NSLog(@"%@",NSStringFromClass([self.presentationController class]));
        NSLog(@"%@",NSStringFromClass([self.presentedViewController class]));
        NSLog(@"%@",NSStringFromClass([self.presentingViewController class]));
        
    }
    

    打印结果:

    2015-10-07 11:49:39.437 ceshi[2610:61561] _UIFullscreenPresentationController
    2015-10-07 11:49:39.437 ceshi[2610:61561] (null)
    2015-10-07 11:49:39.437 ceshi[2610:61561] TestViewController
    
    总结:
    
    presented 和 presenting 都是相对于当前UIViewController自己的。
    
    我的理解,presented就是当前UIViewController有权利弹出的VC对象,presenting就是把当前UIViewController给弹出的对象。
    
    我再理解了一下,presented就是当前UIViewController的儿子
    
            presenting就是当前UIViewController的老子
    

    参考链接:http://www.cnblogs.com/R0SS/p/4858480.html

    相关文章

      网友评论

          本文标题:iOS开发之UIViewController 的 present

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